7.3 规则管理端集群方案
7.3.1 总体方案

解决的问题:
- 多个服务实例间的Session共享问题
- 多个服务实例间的局部缓存同步更新问题
7.3.2.默认实现方案
引入组件udm-server-cluster
<!-- 导入udm-server-cluster集群组件 -->
<dependency>
<groupId>com.bstek.udm</groupId>
<artifactId>udm-server-cluster</artifactId>
<version>0.1-SNAPSHOT</version>
</dependency>
手工启用集群环境
当系统配置表udm_property中udm.cluster.enable=true值时,标志为集群环境
新增yml配置项
spring:
application:
name: UDM-SERVER
servlet:
multipart:
maxRequestSize: 100MB
maxFileSize: 100MB
session:
store-type: redis
redis:
host: localhost
port: 6379
database: 2 #指定db2
timeout: 10000
jedis:
pool:
max-active: 50 # 连接池最大连接数(使用负值表示没有限制)
max-wait: 5000 # 连接池中连接用完时,新的请求等待时间(毫秒),超过该时间抛出异常JedisConnectionException,(默认-1,负值表示没有限制,不建议使用默认值)
max-idle: 10 # 连接池中的最大空闲连接,默认8
min-idle: 2 # 连接池中的最小空闲连接,默认0
支持自定义MQ方案
当前默认方案中缓存中间件是Redis,同时也作为MQ组件在用,有能力的开发者可以导入更专业的MQ中间件(例如kafka)。
开发者只需要替换 com.bstek.udm.server.cluster.mq 中的消息发布/订阅实现类即可。
测试验证
- 在RuleApp管理功能页面,启用规则版本

- 在8090端口机器的日志中,可以看到pub和sub信息

- 在8091端口机器的日志中,可以看到sub信息
