分布式环境的一些概念和问题处理

先了解分布式和集群的概念:分布式是单系统拆分成多模块系统,集群是单个应用分成多个应用协同工作,分布式因为拆分成多个应用协同工作,所以也是集群,但集群的应用不一定拆分成模块系统,所以不一定是模块系统.

在这里插入图片描述

一致性hash算法:

hash算法的使用范围:数据加密,数据存储和查找时 序列用的就是hash和b树
hash存储方式 根据你的数据产生一个固定的hash码 比如1 hash码就是1, 然后再查找时就根据你输入数据的hash码进行查询, 有值就是存在,没有就是空.
hash冲突:当两个数据通过计算得出的hash值相同了,那么就叫hash冲突;如何解决hash冲突?
开放寻址法:出现hash冲突时,可以将后来的数据存入到相邻的空闲位置(一般不用,添加数据无法添加)
拉链法:当出现hash冲突,将冲突的下标位进行纵向扩展.
如果hash算法设计的很好,那么查询效率会接近于O(1),hash表查询的速率是由hash算法决定的,而且这个算法一直在更新
普通hash算法在服务器扩容和缩容时会出现session问题
将int的取值范围形成为一个闭环 成为hash环 然后服务器均匀的分布在hash环上,成为hash节点, 每个用户请求都在一个点上,按顺时针查找最近的hash节点,也就是服务器,当有一个服务器宕机时,用户请求的是消失的hash节点的话,那么就按顺时针再找下一个hash节点;如果增加了新服务器,新增了hash节点,那么新增的hash节点与上一个节点之间的用户 将会被重新路由到新节点,之前是路由新hash节点的下一个节点,
	缺陷:如果hash节点过少,会导致某一hash节点压力过大,造成数据倾斜.
	解决这个缺陷:利用虚拟节点;单个真实节点求多个hash值 来造出映射的虚拟hash节点 这样就可以解决数据倾斜问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值