SpringCloud
SpringCloud的五大组件
- 注册中心
- 网关
- 远程调用
- 负载均衡
- 熔断降级
谈谈你对SpringCloud的理解
- SpringCloud是为了解决微服务架构中出现的一系列服务治理难题的而提出的一套规范,统一了标准。
- 降低了微服务架构的开发难度。有了 Spring Cloud 这样的技术生态,使得我们在落地微服务架构时。不用去考虑第三方技术集成带来
额外成本,只要在SpringBoot 项目基础上通过Starter启动依赖集成相关组件就能轻松解决各种问题。
业务相关
限流
漏桶算法
控制速率
控制单位时间内的实际请求到服务器的请求数量
- 存储请求
- 多余请求等待或抛弃
- 固定速率漏出请求
控制并发连接数
令牌桶算法
区别
- 漏桶算法以固定速率漏出请求,每秒漏出的请求是固定的。而令牌算法以固定速度产生令牌,导致拿到令牌的数目是不固定的。
谈谈你对一致性hash算法的理解
一致性 Hash 是通过一个 Hash 环的数据结构来实现的这个环的起点是 0,终点是2^32-1,即环的数据分布范围是[0, 2 ^32 - 1 ]
然后我们把存储节点的 ip 地址作为 key 进行 hash 之后,会在 Hash 环上确定一个位置。
把需要存储的目标 key 使用 hash 算法计算后得到一个 hash 值,同样也会落到hash 环的某个位置上。
一致性 hash 算法的好处是扩展性很强,在增加或者减少服务器的时候,数据迁移范围比较小。
另外,在一致性 Hash 算法里面,为了避免 hash 倾斜导致数据分配不均匀的情况,我们可以使用虚拟节点的方式来解决。