php 网站部署,网站建设阿里,教育网站建设需求分析报告,网站建设首选智投未来1戳蓝字“CSDN云计算”关注我们哦#xff01;来源 | 靳刚同学作者 | 靳刚“一致性hash的设计初衷是解决分布式缓存问题#xff0c;它不仅能起到hash作用#xff0c;还可以在服务器宕机时#xff0c;尽量少地迁移数据。因此被广泛用于状态服务的路由功能”01—分布式系统的路… 戳蓝字“CSDN云计算”关注我们哦来源 | 靳刚同学作者 | 靳刚“一致性hash的设计初衷是解决分布式缓存问题它不仅能起到hash作用还可以在服务器宕机时尽量少地迁移数据。因此被广泛用于状态服务的路由功能”01—分布式系统的路由算法假设有一个消息推送系统其简易架构如下设备接入层不仅要接收设备的登录、下线等状态命令还要把开发者的消息推送给设备。这个时候设备接入层就需要维护设备的状态信息当然可以专门拆一个状态服务去维护这些信息要求这部分必须少有代码更新具体原因自己去想哦_。这个时候设备接入层的每台server都保留一批设备的状态信息cache设备应该连接哪台server去获取数据同时中间层的消息又该发往哪个server去推送呢这就用到了一致性hash算法。02—什么是一致性hash算法一致性hash由对象、静态资源段、算法和机器组成。它要做的是对象通过算法判断连哪台机器。在如上系统中设备iduserID为对象固定号段(cache)为资源段服务器为机器。在一致性hash算法中这些资源段围成了一个闭环每台机器又保存着目标资源段的数据每个资源段对应一批对象/设备这样如果某台机器挂了那它对应的资源段转移到离它较近的机器x这台dead server对应的设备连接到机器x就行。现在假设这四个资源段对应的设备活跃情况相差较大。比如说资源段1、2对应的设备特别活跃而资源段3和4几乎没活动。这样机器1-2需要保存大量的状态数据而3-4则有大量的空置显然是不合理的。改进版的一致性hash算法是这样操作的它不再是每台机器去保存一个连续的资源段而是让每台机器都保存多个区域的部分资源段。如机器1保存每个资源段的1/4机器2保存每个资源段的1/4机器3、4同样如此。这样即使个别号段有热点也会均摊到不同的机器。03—一致性hash在系统中的应用如上介绍了一致性hash的概念和改进在系统实践中我们用户量非常大往往不只一个集群。我们是如此使用一致性hash首先根据不同号段选择对应的集群这部分是可配置的确定集群后根据一致性hash把设备匹配到server的某个instance上(每台server部署多个设备接入层实例1.每个instance保存的状态信息更分散;2.服务的gc问题会有缓解建立机器虚拟节点把user逆序(打乱之前连续userId)组成新的资源段;相当于建立了server虚拟节点记录每台server锁服务的设备数如果机器A挂了挑选服务设备数最少的机器去承接kicked-device04—不是所有情况都适合一致性hash以上介绍了一致性Hash的原理和实践但不是所有的服务都适合用一致性hash来路由。比如01节中的消息推送系统中间层是无状态的开发者接入层请求cluter-A的哪台机器都行它只要做完基本校验后把消息异步发给MQ即可无需等待结果直接返回; 而设备接入层是有状态的且对较高时延无法忍受更适合一致性Hash选择好server-instance然后通过TCP/UDP来通信。福利扫描添加小编微信备注“姓名公司职位”加入【云计算学习交流群】和志同道合的朋友们共同打卡学习推荐阅读mysql表设计要注意什么漫话如何给女朋友解释鸿蒙OS是怎样实现跨平台的换脸软件 ZAO 刷屏你在玩换脸别人想要你的脸只给测试集不给训练集要怎么做自己的物体检测器华为鸿蒙为什么非要碰物联网Dropout、梯度消失/爆炸、Adam优化算法神经网络优化算法看这一篇就够了真香朕在看了