数据同步配置

    数据同步原理请参考设计文档中的 数据同步原理

    • Apache ShenYu网关配置

      首先在 pom.xml 文件中引入以下依赖:

    数据同步配置 - 图2

    然后在 yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. websocket :
    4. urls: ws://localhost:9095/websocket
    5. # urls:是指 shenyu-admin的地址,如果有多个,请使用(,)分割。

    • shenyu-admin 配置

      yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. websocket:
    4. enabled: true

    数据同步配置 - 图4

    当建立连接以后会全量获取一次数据,以后的数据都是增量的更新与新增,性能好。而且也支持断线重连 (默认30秒)。推荐使用此方式进行数据同步,也是Apache ShenYu默认的数据同步策略。

    Zookeeper同步配置

    • Apache ShenYu网关配置

      首先在 pom.xml 文件中引入以下依赖:

      1. <!-- apache shenyu data sync start use zookeeper-->
      2. <dependency>
      3. <groupId>org.apache.shenyu</groupId>
      4. <artifactId>shenyu-spring-boot-starter-sync-data-zookeeper</artifactId>
      5. <version>${project.version}</version>
      6. </dependency>

    1. shenyu:
    2. sync:
    3. zookeeper:
    4. url: localhost:2181
    5. # url: 配置成你的 zookeeper 地址,集群环境请使用(,)分隔
    6. sessionTimeout: 5000
    7. connectionTimeout: 2000

    数据同步配置 - 图6

    • shenyu-admin 配置

    yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. zookeeper:
    4. url: localhost:2181
    5. # url: 配置成你的 zookeeper 地址,集群环境请使用(,)分隔
    6. sessionTimeout: 5000

    使用zookeeper同步机制也是非常好的,时效性也高,但是要处理zookeeper环境不稳定,集群脑裂等问题。

    • Apache ShenYu网关配置

    首先在 pom.xml 文件中引入以下依赖:

    数据同步配置 - 图8

    然后在 yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. http:
    4. url: http://localhost:9095
    5. # url: 配置成你的 shenyu-admin 的 ip 与端口地址,多个admin集群环境请使用(,)分隔。

    • shenyu-admin 配置

    yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. http:
    4. enabled: true

    数据同步配置 - 图10

    使用Http长轮询进行数据同步,会让网关很轻量,但时效性略低。它是根据分组key来拉取,如果数据量过大,过多,会有一定的影响。原因是一个组下面的一个小地方更改,都会拉取整个组的数据。

    Nacos同步配置

    • Apache ShenYu网关配置

    首先在 pom.xml 文件中引入以下依赖:

    1. <!-- apache shenyu data sync start use nacos-->
    2. <dependency>
    3. <groupId>org.apache.shenyu</groupId>
    4. <artifactId>shenyu-spring-boot-starter-sync-data-nacos</artifactId>
    5. <version>${project.version}</version>
    6. </dependency>

    然后在 yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. nacos:
    4. url: localhost:8848
    5. # url: 配置成你的 nacos地址,集群环境请使用(,)分隔。
    6. namespace: 1c10d748-af86-43b9-8265-75f487d20c6c
    7. username:
    8. password:
    9. acm:
    10. enabled: false
    11. endpoint: acm.aliyun.com
    12. namespace:
    13. accessKey:
    14. secretKey:
    15. # 其他参数配置,请参考 naocs官网。
    • shenyu-admin 配置

    yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. nacos:
    4. url: localhost:8848
    5. namespace: 1c10d748-af86-43b9-8265-75f487d20c6c
    6. username:
    7. password:
    8. acm:
    9. enabled: false
    10. endpoint: acm.aliyun.com
    11. namespace:
    12. accessKey:
    13. secretKey:
    14. # 其他参数配置,请参考 naocs官网。

    数据同步配置 - 图13

    • Apache ShenYu网关配置

    首先在 pom.xml 文件中引入以下依赖:

    然后在 yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. etcd:
    4. url: http://localhost:2379
    5. # url: 配置成你的 etcd,集群环境请使用(,)分隔。

    数据同步配置 - 图15

    • shenyu-admin 配置

    yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. etcd:
    4. url: http://localhost:2379
    5. # url: 配置成你的 etcd,集群环境请使用(,)分隔。

    Consul 同步配置

    • Apache ShenYu网关配置

    首先在 pom.xml 文件中引入以下依赖:

    1. <!-- apache shenyu data sync start use consul-->
    2. <dependency>
    3. <groupId>org.apache.shenyu</groupId>
    4. <artifactId>shenyu-spring-boot-starter-sync-data-consul</artifactId>
    5. <version>${project.version}</version>
    6. </dependency>

    数据同步配置 - 图17

    然后在 yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. consul:
    4. url: http://localhost:8500
    5. waitTime: 1000 # 查询等待时间
    6. watchDelay: 1000 # 数据同步间隔时间

    • shenyu-admin 配置

    yml 文件中进行如下配置:

    1. shenyu:
    2. sync:
    3. url: http://localhost:8500

    数据同步配置 - 图19