当前位置: 首页 > 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.yayakq.cn/news/455301/

相关文章:

  • 做网站网页挣钱不新网站建设验收
  • 永康网站建设优化建站wordpress域名设置方法
  • 建设公司网站广告语发稿吧
  • 呼和浩特做网站的公司哪个网站做头像比较好
  • 用wordpress建企业网站南京浦口住房与城乡建设局网站
  • 九江建网站多少钱网站建设服务器环境配置
  • 矿产网站建设价格绍兴市网站建设公司
  • 贵阳网站开发价格赣州做网站设计找哪家
  • 怎么确定网站的关键词长沙有什么好玩的游乐场
  • 做网站链接怎么弄网站域名行业动态
  • 网站建设合作协议申请wordpress小工具不显示
  • 网站建设搭建公司wordpress占资源
  • 网站建设入门到精通wordpress的开发文档
  • 空壳网站查询企业 网站建设
  • 网站后来功能wordpress 熊掌号代码
  • 公司建设包括哪些方面seo信息是什么
  • 广州设计网站建设如何申请公司域名
  • 网站建设前端tom企业邮箱注册
  • 如何做php网站建设用vs2008做网站教程
  • 外贸网站设计风格沈阳网站建设开发
  • 网站不备案访问做网站推广的工作内容
  • 乐器销售网站模板在线logo制作免费
  • 网站服务器繁忙是怎么回事外贸仿牌网站建设
  • php网站打开慢英雄联盟网页设计代码
  • 2o18江苏建设网站施工员模试卷百度邮箱注册申请免费注册
  • 安徽教育云平台网站建设wordpress 博客搬家
  • 比较好的建站系统企业门户网站登录
  • 大型门户网站建设定做兰州建设厅网站
  • 河南5G网站基站建设信息做花型设计哪个网站下载素材好
  • 深圳网站建设服务网站开发工具有组合