7.3 规则管理端集群方案

7.3.1 总体方案

image.png

解决的问题:

  • 多个服务实例间的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管理功能页面,启用规则版本

img

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

img

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

img

results matching ""

    No results matching ""