Boh*_*dan 6 queue distributed distributed-computing distributed-system
什么是使分布式队列打勾的架构模式/解决方案?
请分享订购和非订购类型.
Mic*_*uff 13
您可以将队列的后端视为复制数据库.(我假设您正在谈论的队列认为自己是持久的:当他们接受消息时,他们保证至少一次交付.)
作为复制数据库,消息队列后端使用复制协议确保消息至少在N个主机上,然后才确认收件人已发送给发件人.常见的复制协议是2PC,3PC和共识协议,如Raft,Multi-Paxos和Chain Replication.
要向接收方发送消息,您必须使用消息租约执行几乎相同的复制.队列服务器将消息保留一段时间; 它将消息发送给接收方,如果/当接收方收到消息时,服务器将删除该消息.否则,服务器将重新发送消息给下一个可用的接收器.
一些消息队列停在那里,其他人添加了许多铃声和口哨声.SQS是一个队列实现,它不会添加许多花里胡哨,以便它可以扩展更多.例如,它允许它们对队列进行分片,以便一个SQS队列实际上由如上所述的许多甚至数千个队列组成.顺便说一句,我曾经听过一位SQS开发人员在接受每秒数百万封邮件时会问另一个"订购' 是什么意思?"
话虽这么说,一些队列确实提供强大的订购保证.(我已经实现了几种类型的系统.)这样做的成本是缩放的能力.为了保持排序,队列的复杂性也在增加.队列必须维护所有消息的有序日志,并在其服务器上复制相同的顺序.这比无序复制要困难得多.有序队列系统通常选择主设备来维护排序,所有消息都路由到主设备.他们还倾向于使用更复杂的协议进行复制.
| 归档时间: |
|
| 查看次数: |
3905 次 |
| 最近记录: |