• 一致性哈希


    一致性哈希设计目标用于解决热点问题。

    一致性哈希需要满足以下几个条件:
    1:均衡性(Balance),数据应该均匀地分布到所有的缓冲中
    2:单调性(Monotonicity),当缓冲发生变化时,能够保证部分内容被分配到新的缓冲中去(包括原有已分配的内容和新加入的内容)
    3:分散性(Spread),由不同终端映射相同内容时,应保证映射到相同的缓冲中,避免发生不一致的情况。
    4:负载(Load),能够尽量降低缓冲的负荷
    5:平滑性(Smoothness),服务器的数目平滑改变和缓冲对象的平滑改变。

    如果通过哈希取余HASH(Object)%N的方式来实现缓存,当某一节点出现故障时,故障节点对应的内容将无法映射到其他节点中,而当新增一节点时,也无法将部分内容映射到新缓冲中,因此不满足一致性哈希的单调性原则。
    为解决上述问题,使用HASH环来实现,按hash后的值查找临近的缓冲节点,因此无论是删除还是新增节点,都能保证内容被影射到特定一个缓冲节点上。

    对于上面的实现方式,存在一个问题,当某个节点被删除后,该节点上所对应的缓冲范围将移动到其邻居节点上,导致其邻居节点的负载增加;当新增一个节点后,新缓存节点只能分担其邻居节点的缓存压力,不满足一致性hash的负载性。
    为解决节点变动导致的缓存负载问题,可以采用虚拟缓冲节点来处理,将hashkey的范围均分到很多个虚拟节点上,再将这些虚拟节点映射到缓冲物理节点上,
    1>当删除物理节点时,可以将该物理节点对应的虚拟节点均匀地拆分到其余物理节点上;
    2>当新增物理节点时,可以将其余各个节点上的虚拟节点拆分一部分到新物理节点上;
  • 相关阅读:
    ABAP 更改DN外向交货单
    ABAP 参照SO item 创建DN
    ABAP 获取客户供应商的电话,地址,email等相关信息
    ABAP 自定义的ALV导出excel按钮,导出ALV内表中其中某几列的数据
    ABAP 后台JOB布置例子
    ABAP 选择屏幕字段动态隐藏和显示
    ABAP 选择屏幕上的导入模板下载按钮
    ABAP 选择屏幕文件导入时,单元格超50字符怎么处理
    ABAP 选择屏幕字段动态隐藏和显示
    人脸检测数据集
  • 原文地址:https://www.cnblogs.com/gaogao67/p/10390757.html
Copyright © 2020-2023  润新知