Soul网关(11) - 集群搭建同步数据

485 阅读2分钟

话不多说,上来就干

环境准备

使用idea集成开发环境进行soul的集群搭建,有利于调试源码,发现问题,后期我们再部署到服务器

admin服务

修改启动参数

修改vm参数,增加-Dserver.port=9091参数,vm options设置了就会优先读取这里,这里涉及spring的一个读取配置顺序的知识点(启动命令,jar包外配置,包内根目录配置等位置),不了解的同学可以自行搜索

增加两个一模一样的启动配置,修改vm options参数 -Dserver.port=9091,这里的9091可以在另外两个启动配置,配置成不一样且未被占用的端口号,比如9092,9093,9094等等

注意:需要勾选parallel选项

启动服务

port=9091 port=9092 port=9093

bootstrap服务

同样参考admin服务的集群配置,启动服务,报错 websocket reconnection is error

没有使用注册中心,个人盲猜使用websocket和http长轮询进行数据同步,只能admin和web的某两个对应配置的节点信息保持同步,并不能保证其他节点数据一致,会出现数据一致性问题

为了验证这个,我们来试验一下,web的启动服务bootstrap我们配置四个节点,端口分别为 9081 9082 9083 9084

修改配置文件

修改admin服务和bootstrap服务中websocket对应的数据同步的yml配置

admin

soul:
  sync:
    websocket:
      enabled: true

bootstrap

//bootstrap节点端口9083——admin节点端口9091
soul :
  sync:
    websocket :
         urls: ws://localhost:9091/websocket
//bootstrap节点端口9083——admin节点端口9092
soul :
  sync:
    websocket :
         urls: ws://localhost:9092/websocket
//bootstrap节点端口9083——admin节点端口9093
soul :
  sync:
    websocket :
         urls: ws://localhost:9093/websocket
//bootstrap节点端口9083——admin节点端口9093
soul :
  sync:
    websocket :
         urls: ws://localhost:9093/websocket