美文网首页
Nacos注册中心

Nacos注册中心

作者: 小周爱吃瓜 | 来源:发表于2022-06-26 23:03 被阅读0次

    1.4.1 版本:

    服务被Client端发现:

    Nacos端定时拉取,udp主动推送

    服务注册,服务发现(没有则进行查询).

    udp丢了就丢了,再发一次./

    1. 心跳检测机制和服务发现机制 心跳机制和服务健康检查源码剖析

    服务变动事件发布

    1. 定时心跳检查任务,集群数据间同步任务

    eureka rw缓存,r 只读缓存和读写缓存, 30s的感知时间 为什么慢?: 因为有多级缓存需要同步.

    启动三台机器,设置不同的端口号


    比如有三台机器,按照名称进行取模运算,然后取到ip地址.

    • 集群节点同步:

    服务端其实就是http请求相互调用.

    健康状态的同步:

    健康实例数: 1->0 ,集群下的机器也会感知到.

    一个服务实例下线后。http 直接发送请求,修改status状态。

    image.png

    同步给其他节点用异步来做,不用同步去做.

    oldMap和newMap 修改的只是某个特定区域的Map实例。

    CP架构:

    如何防止多节点读写并发冲突:

    CopyOnWrite思想,Provider向注册中心注册,oldMap

    [图片上传失败...(image-41cfd6-1656255684920)]

    写时复制,缓存同步,http请求,心跳heartBeat task, 内存队列+异步,

    根据name找服务器,iphash寻找机器,sync同步节点信息,

    发送http请求进行上线下线,删除操作等.

    Nacos配置中心源码分析.jpg

    Nacos读写:

    读的时候不加锁,只有更新的时候才会复制一份副本出来,这样原先的读还是不受影响.
    写完把数据复制回去即可。 因为每个线程都有自己的一个副本变量,更新时候的可见性不能实时保证,加锁的话效率太低,针对这种读多写少的场景。用CopyOnWrite的思想去做非常合适.

    相关文章

      网友评论

          本文标题:Nacos注册中心

          本文链接:https://www.haomeiwen.com/subject/auxnvrtx.html