数据同步配置
本篇主要讲解如何配置数据同步策略,数据同步是指在 shenyu-admin 后台操作数据以后,使用何种策略将数据同步到 Apache ShenYu 网关。Apache ShenYu 网关当前支持ZooKeeper、WebSocket、Http长轮询、Nacos、Etcd 和 Consul进行数据同步。
数据同步原理请参考设计文档中的 数据同步原理 。
WebSocket同步配置(默认方式,推荐)
-
Apache ShenYu网关配置首先在
pom.xml文件中引入以下依赖:
<!-- apache shenyu data sync start use websocket-->
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-sync-data-websocket</artifactId>
<version>${project.version}</version>
</dependency>
然后在 yml 文件中进行如下配置:
shenyu:
sync:
websocket :
# urls:是指 shenyu-admin的地址,如果有多个,请使用(,)分割。
urls: ws://localhost:9095/websocket
allowOrigin: ws://localhost:9195
-
shenyu-admin 配置在
yml文件中进行如下配置:
shenyu:
sync:
websocket:
enabled: true
当建立连接以后会全量获取一次数据,以后的数据都是增量的更新与新增,性能好。而且也支持断线重连 (默认30秒)。推荐使用此方式进行数据同步,也是Apache ShenYu默认的数据同步策略。
Zookeeper同步配置
-
Apache ShenYu网关配置首先在
pom.xml文件中引入以下依赖:
<!-- apache shenyu data sync start use zookeeper-->
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-sync-data-zookeeper</artifactId>
<version>${project.version}</version>
</dependency>
然后在 yml 文件中进行如下配置:
shenyu:
sync:
zookeeper:
url: localhost:2181
# url: 配置成你的 zookeeper 地址,集群环境请使用(,)分隔
sessionTimeout: 5000
connectionTimeout: 2000
shenyu-admin配置
在 yml 文件中进行如下配置:
shenyu:
sync:
zookeeper:
url: localhost:2181
# url: 配置成你的 zookeeper 地址,集群环境请使用(,)分隔
sessionTimeout: 5000
connectionTimeout: 2000
使用zookeeper同步机制也是非常好的,时效性也高,但是要处理zookeeper环境不稳定,集群脑裂等问题。