27、分布式系统中的任务分配、缓存管理与查询优化

分布式系统中的任务分配、缓存管理与查询优化

1. 简单技术及其局限性

有一种简单技术,若结合日志和相对快速的下游 API,会有一定效果。但它仅适用于低吞吐量接口,会引入不必要的延迟,还限制了工作项的处理频率。

2. 集合哈希(Rendezvous Hashing)

当需要低延迟和高吞吐量时,可采用更复杂的机制,如集合哈希。它是一种将对象唯一分配给节点的技术,常用于分布式缓存,这里将其用于把工作项事实分配给服务,类似的一致性哈希算法也适用。
- 服务启动与注册 :每个服务实例启动时生成一个随机数,并向其他服务注册该数。服务注册可通过流言协议、分布式哈希或存储日志的同一数据库实现,关键是服务上线后其他服务能尽快知晓。
- 订阅工作项 :注册后,服务订阅新进入队列的工作项。与随机处理延迟解决方案不同,服务无需轮询,工作可用时会通过 Webhook、广播或发布 - 订阅消息队列得到通知,具体机制取决于所选通信基础设施。
- 计算权重与处理工作项 :服务收到工作项后计算哈希值,在检查日志前,将工作项哈希与所有注册服务(包括自身)的随机数配对,计算每对的哈希值得到权重,权重最高的服务处理该工作项。若该服务是自身,则检查日志并处理工作项。所有服务对同一工作项计算的权重相同,会选出相同的获胜者,减少并行执行的可能性。

graph TD;
    A[服务启动] --> B[生成随机数];
    B --> C[注册随机数];
    C --> D
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值