当前位置: 首页 > news >正文

江门恒达互联网网站建设百度客服人工在线咨询

江门恒达互联网网站建设,百度客服人工在线咨询,深圳专业网站建设制作价格,湛江制作网站企业Distro 它是 Nacos 社区自研的一种 AP 分布式协议(也是最终一致性协议)。它面向临时实例,保证了在某些 Nacos 节点宕机后,整个临时实例处理系统依旧可以正常工作。作为一种有状态的中间件应用的内嵌协议,Distro 保证了…

Distro

它是 Nacos 社区自研的一种 AP 分布式协议(也是最终一致性协议)。它面向临时实例,保证了在某些 Nacos 节点宕机后,整个临时实例处理系统依旧可以正常工作。作为一种有状态的中间件应用的内嵌协议,Distro 保证了各个 Nacos 节点对于海量注册请求的统一协调和存储。

设计思想如下:

  • Nacos 每个节点都是平等的,都可以处理写请求,同时把新数据同步到其它节点。
  • 每个节点只负责部分数据,定时发送自己负责数据的校验值到其它节点来保持数据一致性。
  • 每个节点独立处理读请求,及时从本地发出响应。

数据初始化

源码参考 DistroConsistencyServiceImpl

新加入的 Distro 节点会进行全量数据拉取。轮询所有的 Distro 节点,通过向其它机器发送请求拉取全量数据。

在全量拉取操作完成之后,Nacos 的每台机器上都维护了当前的所有注册的临时实例数据。

数据校验

源码参考 TimedSync

在 Distro 集群启动之后,每台机器会定期发送心跳。心跳信息主要为各个机器上的所有数据的元数据。这种数据校验会以心跳的形式进行,即每台机器在固定时间间隔(默认 5 秒)会向其它机器发起一次数据校验请求。

一旦在数据校验过程中,某台机器发现其它机器上的数据与本地数据不一致,则会发起一次全量拉取请求,将数据补齐。

写数据

源码参考 DistroConsistencyServiceImpl、DistroFilter、TaskScheduler

对于一个已经启动的 Distro 集群,在一次客户端发起写操作的流程中,当注册临时实例的写请求打到某台 Nacos 服务器时,Distro 集群的处理流程如下:

  • 前置的 Filter 拦截请求,并根据请求中的包含的 IP 和 port 信息计算其所属的 Distro 责任节点。当该节点接收到不属于该节点负责的实例的写请求时,将在集群内部路由,转发给对应的节点,从而完成读写。

  • 责任节点上的 Controller 将写请求进行解析。

  • Distro 协议定期执行 sync 任务,将本机所负责的所有实例信息同步到其它节点上。

读数据

由于每台机器上(数据存储在缓存中)都存放了全量数据,因此在每一次读操作中,Distro 机器会直接从本地拉取数据,快速响应。这种机制保证了 Distro 协议可以作为一种 AP 协议,对于读操作可以及时响应,即使出现网络分区的情况下,也能正常返回。等到网络恢复时,各个 Distro 节点会把各数据分片的数据进行合并恢复。这一段暂时没有找到对应的源码。

关于一致性的操作抽离在 ConsistencyService 接口上,并且在实现具体的一致性协议时实现了插件可插拔的形式。

public interface ConsistencyService {/*** Put a data related to a key to Nacos cluster.** @param key   key of data, this key should be globally unique* @param value value of data* @throws NacosException nacos exception*/void put(String key, Record value) throws NacosException;/*** Remove a data from Nacos cluster.** @param key key of data* @throws NacosException nacos exception*/void remove(String key) throws NacosException;/*** Get a data from Nacos cluster.** @param key key of data* @return data related to the key* @throws NacosException nacos exception*/Datum get(String key) throws NacosException;/*** Listen for changes of a data.** @param key      key of data* @param listener callback of data change* @throws NacosException nacos exception*/void listen(String key, RecordListener listener) throws NacosException;/*** Cancel listening of a data.** @param key      key of data* @param listener callback of data change* @throws NacosException nacos exception*/void unListen(String key, RecordListener listener) throws NacosException;/*** Tell the status of this consistency service.** @return true if available*/boolean isAvailable();
}
http://www.ritt.cn/news/20857.html

相关文章:

  • 微擎如何做网站网络营销比较好的企业
  • 武警部门建设网站的好处百度云盘搜索引擎入口
  • 如何做直接打开网站的二维码seo经典案例分析
  • j2ee网站开发开题报告深圳网络推广最新招聘
  • 电子工程职业学院江北seo页面优化公司
  • 网站开发文档价格太原今日新闻最新头条
  • 购物网站哪里建最好推广一次多少钱
  • 上海网站建设案例seo网站优化排名
  • 手机微网站尺寸百度首页百度
  • 做动态网站的软件有哪些内容快手流量推广免费网站
  • 网站内容设计是什么广告平台网
  • 网站建设 网站推广整站seo排名费用价格
  • 专业网站设计公司有哪些广州seo优化
  • 上市公司中 哪家网站做的好seo兼职平台
  • 设计网站做的工作步骤是在线刷seo
  • 写真盗版网站怎么做最新新闻实时新闻
  • 新乡做网站公司电话武汉新一轮疫情
  • 杭州化工网站建设seo排名优化排行
  • 国外做名片网站广州seo排名优化
  • 做网站攻略广东seo点击排名软件哪里好
  • 多语言网站建设价格百度公司官方网站
  • 利用技术搭建网站做博彩代理网站模板怎么建站
  • 保险做的好的网站百度认证平台
  • 网站开发与设计静态网页源代码网络营销技巧培训
  • 做博彩网站要找谁宁波关键词优化排名工具
  • php网站怎么建设什么是网站推广
  • 做个网站好还是做淘宝好google推广妙招
  • 女性网站模板百度联盟官网
  • 网站做一些流量互换网络推广怎么收费
  • 网站开发人员是干嘛的推广文案