作者:小小的dream | 来源:互联网 | 2023-09-01 02:02
1. 问题?
- 当Rocket-API需要多实例部署,以达到负载和并发访问的目的时,任意一个实例API信息的修改,动态数据源配置的变更等,带有实例属性的信息时,变更无法广播给所有实例,就会导致信息不一致的问题
- 在以往需要以重启整个集群所有实例为代价,让各实例去获取到最新信息,极大的影响到线上用户的访问
- 在Rocket-API 2.4.0.RELEASE中提交了此功能,变更实例之间实时同步,无需重启
2. 配置方式如下:
- 在yml中配置集群模式如下:默认值为
none
表示单机模式。redis
表示以Redis组件来完成集群模式。如果可以,你能够自定义通知形式,参考:com.github.alenfive.rocketapi.extend.RedisClusterNotify
spring:rocket-api:cluster-type: redis
- 引入redis pom依赖,配置好相关连接配置
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
- 启动多个实体&#xff0c;测试API的修改&#xff0c;动态数据源的修改&#xff0c;动态配置的修改&#xff0c;是否所有实体都得到了变更
1. Rocket-API Cluster Redis集群模式原理如下&#xff1a;
- 使用Redis的发布订阅者模式特性&#xff0c;将所有的新增&#xff0c;修改&#xff0c;删除信息广播给所有订阅者&#xff0c;订阅者接收信息完成本地缓存的更新
2. 相关配置类查看&#xff1a;com.github.alenfive.rocketapi.config.RedisClusterNotifyConfig
Rocket-API 简介
用尽可能简单的方式&#xff0c;完成尽可能多的需求。通过约定的方式 实现统一的标准。告别加班&#xff0c;拒绝重复劳动&#xff0c;远离搬砖
特性
- 用于快速开发API接口。不再定义Controller,Service,Dao,Mybatis,xml,Entity,VO等对象和方法.
- 可视化界面&#xff0c;将入参自动封装到可执行的脚本上&#xff0c;支持所有关系性数据库SQL执行语句&#xff0c;非关系型MONGODB查询语句.欢迎扩展
- 完全基于springboot2.x 作为springboot项目的stater方式集成,无侵入性&#xff0c;新老项目都能快速集成
只需编写一行代码即可完成大部分的业务需求开发&#xff0c;使用难度级别&#xff08;测试 or 运维&#xff09;也可参与开发 - 在线动态编译&#xff0c;无需重启&#xff0c;即时生效&#xff0c;多数据源操作
- 版本控制,历史记录比对&#xff0c;回滚等功能
- 远程一键发布到线上环境
- 线上POSTMAN调试,保存POSTMAN信息或三方文档的自动生成&#xff0c;历史调用记录存储&#xff0c;回塑
- 代码提示&#xff0c;SQL提示&#xff0c;语法提示
- 用户管理控制&#xff0c;安全性控制&#xff0c;以及历史行为记录
经过多次项目验证&#xff0c;传统业务型开发&#xff0c;服务端效率能够提升3-5倍&#xff0c;前后端联调提升效率1倍&#xff0c;测试效率2倍提升