消息“时序”与“一致性”为何这么难?

  1. 云栖社区>
  2. 阿里云MVP>
  3. 博客>
  4. 正文

消息“时序”与“一致性”为何这么难?

子夜初商南 2019-08-14 00:49:27 浏览133
展开阅读全文

分布式系统中,很多业务场景都需要考虑消息投递的时序,例如:

(1)单聊消息投递,保证发送方发送顺序与接收方展现顺序一致

(2)群聊消息投递,保证所有接收方展现顺序一致

(3)充值支付消息,保证同一个用户发起的请求在服务端执行序列一致

消息时序是分布式系统架构设计中非常难的问题,ta为什么难,有什么常见优化实践,是本文要讨论的问题。

一、为什么时序难以保证,消息一致性难?

为什么分布式环境下,消息的时序难以保证,这边简要分析了几点原因:

【时钟不一致】

image.png

分布式环境下,有多个客户端、有web集群、service集群、db集群,他们都分布在不同的机器上,机器之间都是使用的本地时钟,而没有一个所谓的“全局时钟”,所以不能用“本地时间”来完全决定消息的时序。

【多客户端(发送方)】

image.png

多服务器不能用“本地时间”进行比较,假设只有一个接收方,能否用接收方本地时间表

网友评论

登录后评论
0/500
评论
子夜初商南
+ 关注
所属云栖号: 阿里云MVP