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>
- 启动多个实体,测试API的修改,动态数据源的修改,动态配置的修改,是否所有实体都得到了变更
1. Rocket-API Cluster Redis集群模式原理如下:
- 使用Redis的发布订阅者模式特性,将所有的新增,修改,删除信息广播给所有订阅者,订阅者接收信息完成本地缓存的更新
2. 相关配置类查看:com.github.alenfive.rocketapi.config.RedisClusterNotifyConfig
Rocket-API 简介
项目地址:https://gitee.com/alenfive/rocket-api
用尽可能简单的方式,完成尽可能多的需求。通过约定的方式 实现统一的标准。告别加班,拒绝重复劳动,远离搬砖
特性
- 用于快速开发API接口。不再定义Controller,Service,Dao,Mybatis,xml,Entity,VO等对象和方法.
- 可视化界面,将入参自动封装到可执行的脚本上,支持所有关系性数据库SQL执行语句,非关系型MONGODB查询语句.欢迎扩展
- 完全基于springboot2.x 作为springboot项目的stater方式集成,无侵入性,新老项目都能快速集成
只需编写一行代码即可完成大部分的业务需求开发,使用难度级别(测试 or 运维)也可参与开发 - 在线动态编译,无需重启,即时生效,多数据源操作
- 版本控制,历史记录比对,回滚等功能
- 远程一键发布到线上环境
- 线上POSTMAN调试,保存POSTMAN信息或三方文档的自动生成,历史调用记录存储,回塑
- 代码提示,SQL提示,语法提示
- 用户管理控制,安全性控制,以及历史行为记录
经过多次项目验证,传统业务型开发,服务端效率能够提升3-5倍,前后端联调提升效率1倍,测试效率2倍提升