Nacos 配置更新的工作流程,以及Nacos和Eureka的区别

文章目录

目录

        1.Nacos 配置更新的工作流程:

        可能存在的问题:

        Nacos的优化:

        2.Nacos和Eureka的区别

        服务启动方式的区别:

        提供者和注册中心之间

        消费者和注册中心之间。

1.Nacos 配置更新的工作流程:

Nacos 是采用长轮询的方式向 Nacos Server 端发起配置更新查询的功能
长轮询 客户端发起一次轮询请求到服务端,当服务端配置没有任何变更 的时候,这个连接一直打开,直到服务端有配置或者连接超时后返回

可能存在的问题:

Nacos Client 端需要获取服务端变更的配置,前提是要有一个比较,也就是拿客户端本地的配置信息和服务端的配置信息进行比较。一旦发现和服务端的配置有差异,就表示服务端配置有更新,于是把更新的配置拉到本地。
在这个过程中,有可能因为客户端配置比较多导致比较的时间较长,使得配置 同步较慢的问题

Nacos的优化:

Nacos 针对这个场景,做了两个方面的优化
一方面: 客户端把需要进行比较的配置进行分片
减少网络通信的数据量,客户端把需要进行比较的配置进行分片,每一个分片大小是 3000 ,也就是说,每次最多拿 3000 个配置去 Nacos Server 端进行比较
另一方面:
客户端把这 3000 个配置的 key 以及对应的 value 值的 md5 拼接成一个字符串,然后发送到Nacos Server 端进行判断,服务端会逐个比较这些配置中 md5 不同的 key ,把存在更新的 key 返回给客户端
客户端拿到这些变更的 key ,循环逐个去调用服务单获取这些 key 的 value 值
这两个优化,核心目的是减少网络通信数据包的大小,把一次大的数据包通信拆分成了多次小的数据包通信。虽然会增加网络通信次数,但是对整体的性能有较大的提升
最后,再采用长连接这种方式,既减少了 pull 轮询次数,又利用了长连接的优势,很好的实现了配置的动态更新同步功能

2.Nacos和Eureka的区别

服务启动方式的区别:

        Eureka服务就类似微服务中的用户服务或者订单服务,需要自己创建springboot项目,然后启
动服务,然后部署项目。
        而Nacos服务就类似redis那样,直接从阿里巴巴nacos的官网下载jar包,启动服务就ok了

提供者和注册中心之间

    (1)Eureka中会定时向注册中心发送心跳,如果在短期内没有发送心跳,则就会直接剔除。

    (2)Nacos也会向注册中心发送心跳,但是它的频率要比Eureka快。在Nacos中又分为临时实例和非临时实例。如果是临时实例的话,短期内没有发送心跳,则会直接剔除。但是如果是非临时实例长时间宕机,不会直接剔除,并且注册中心会直接主动询问并且等待非临时实例。

消费者和注册中心之间。

     (1)Eureka会定时向注册中心定时拉取服务,如果不主动拉去服务,注册中心不会主动推送。

     (2)Nacos中注册中心会定时向消费者主动推送信息  ,这样就会保持数据的准时性。


        总结:Eureka是从注册中心拉取过来,而Nacos是注册中心主动向各个服务推

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值