SOUL Admin & 网关 Zookeeper 数据同步
目前SOUL提供了这几种数据同步方式, 上一节我们使用了WebSocket, 这一节使用Zookeerper来做数据同步, 代码实现结构与WebSocket如出一辙, 只不过具体的同步过程使用了Zookeeper自身的特性
启动 zk,我用的docker docker run -p 2181:2181 --restart unless-stopped --name zk -d zookeeper
保证 soul-bootstrap pom.xml 引入
<dependency>
<groupId>org.dromara</groupId>
<artifactId>soul-spring-boot-starter-sync-data-zookeeper</artifactId>
<version>${project.version}</version>
</dependency>
soul-bootstrap/src/main/resources/application-local.yml 打开zk的配置,注释掉websocket(不注释掉的话就两种同步方式都开启,没有必要)
soul:
sync:
# websocket :
# urls: ws://localhost:9095/websocket
zookeeper:
url: localhost:2181
sessionTimeout: 5000
connectionTimeout: 2000
启动 bootstrap
2021-01-22 01:22:42.073 INFO 48117 --- [ main] org.I0Itec.zkclient.ZkClient : Waiting for keeper state SyncConnected
2021-01-22 01:22:42.077 INFO 48117 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn : Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2021-01-22 01:22:42.093 INFO 48117 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn : Socket connection established, initiating session, client: /127.0.0.1:61106, server: localhost/127.0.0.1:2181
2021-01-22 01:22:42.105 INFO 48117 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn : Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x100000074b10006, negotiated timeout = 5000
2021-01-22 01:22:42.107 INFO 48117 --- [ain-EventThread] org.I0Itec.zkclient.ZkClient : zookeeper state changed (SyncConnected)
查看zk, 我用是 zkCli, 可以看到在 / 路径下有了soul
[zk: localhost:2181(CONNECTED) 2] ls /soul
[auth, metaData, plugin]
ls /soul/auth
[]
[zk: localhost:2181(CONNECTED) 4] ls /soul/metaData
[]
[zk: localhost:2181(CONNECTED) 5] ls /soul/plugin
[]
由于admin还没启动 目前auth, metaData, plugin都是空的
同样修改soul-admin/src/main/resources/application.yml 打开zookeeper配置
sync:
# websocket:
# enabled: true
zookeeper:
url: localhost:2181
sessionTimeout: 5000
connectionTimeout: 2000
启动 soul-admin/src/main/java/org/dromara/soul/admin/SoulAdminBootstrap.java
2021-01-22 01:30:59.421 INFO 48224 --- [ main] org.I0Itec.zkclient.ZkClient : Waiting for keeper state SyncConnected
2021-01-22 01:30:59.426 INFO 48224 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn : Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
2021-01-22 01:30:59.443 INFO 48224 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn : Socket connecti