Soul源码阅读 数据同步之nacos同步【第十天】

之前写的博客都有点问题,修正下,以后文章编写参考:https://github.com/ruanyf/document-style-guide

简介

Soul使用了多种同步配置信息的方式,包括WebSocket,ZooKeeper,Http长轮询,Nacos,还缺少一个Nacos。我们先了解下Nacos是个什么东西:Nacos 提供了一组简单易用的特性集,提供快速实现动态服务发现、服务配置、服务元数据及流量管理。如果有用过ZooKeeper的话,Nacos是类似的。今天介绍的同步就是使用Nacos实现的。

快速上手

环境准备

Nacos官网
需要下载Nacos

安装步骤

Nacos配置步骤 官网很详细,这个直接参照官网就可以了

Nacos安装编译完成进行启动

cutiedeMacBook-Pro:nacos cutie$ cd distribution/target/nacos-server-1.4.2-SNAPSHOT/nacos/bin/
cutiedeMacBook-Pro:bin cutie$ sh startup.sh -m standalone
# 可以查看启动是否成功
cutiedeMacBook-Pro:bin cutie$ less /Users/cutie/workspace/nacos/nacos/distribution/target/nacos-server-1.4.2-SNAPSHOT/nacos/logs/start.out

可以访问下 http://127.0.0.1:8848/nacos ,用户名 nacos,密码 nacos
新增一个命名空间soul

image.png

如何配置Soul注册到Nacos

Admin添加依赖

<!-- nacos-client 1.2.0 -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client</artifactId>
    <version>${nacos-client.version}</version>
</dependency>

新增配置

  sync:
    nacos:
      url: localhost:8848
      namespace: 03bc0f22-78c1-49f0-a26c-7a62c1f7b898

Bootstrap添加依赖

<!-- soul data sync start use nacos-->
<dependency>
    <groupId>org.dromara</groupId>
    <artifactId>soul-spring-boot-starter-sync-data-nacos</artifactId>
    <version>${project.version}</version>
</dependency>

新增配置

    sync:
      nacos:
        url: localhost:8848
        namespace: 03bc0f22-78c1-49f0-a26c-7a62c1f7b898

nacos里面查看rule.plugin,里面没有数据,同步的时候调试一下


image.png

一开始里面没数据,拉一下最新的代码
启动admin,会注册配置信息(插件,选择器,规则,元数据,授权信息)到Nacos。
之前规则没同步的数据也同步过来了


image.png

具体是admin启动的时候,获取数据库中保存的配置信息,然后根据nacos配置的url和对应的namespace同步到nacos
NacosListener 中nacosDataInit,如果数据没进行初始化的时候则进行初始化。
NacosListener在初始化的时候也加载了NacosDataChangedListener,在本地数据发生变化的时候使用这个监听,同步给nacos。
然后Bootstrap中的配置数据总是保持最新的改变后的,Bootstrap使用NacosSyncDataService监听,NacosSyncDataService中的start方法进行监听初始化。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容