我想了解分布式系统中队列的用例是什么 还有它如何扩展以及它如何确保它不是系统中的单点故障?
感谢任何直接回答或对文档的引用。
用例:
我知道队列是一个消息传递系统。它解耦了彼此之间相互通信的系统。但是,这是使用队列的唯一要点吗?
可扩展性:
队列如何扩展大量数据?读写都是。
可靠性: 队列如何不成为系统中的单点故障?队列是否进行复制,类似于数据存储?
我的问题未指定给任何特定的队列服务器,如Kafka或JMS。总的来说。
答案 0 :(得分:0)
A1:不,它不是唯一的角色 - 消息传递似乎是主要的,但分布式系统信令是另一个,绝不是那么重要。 Hoare的开创性CSP论文是该领域的旗舰产品。最近几十年在设计分布式系统信令/消息服务基础设施方面提供了更多选择和“智能行为”。
A2:扩展信封在很大程度上取决于实施。很明显,无代理队列可以更快地运行,这是一个基于代理的集中式基础架构。随着数据流量的增长,传输类和传输链路会导致额外的延迟+性能下降。 BLOB处理是性能悬崖的另一个层面,因为低效率正在分布式处理链中累积。零拷贝(几乎)零延迟智能队列实现仍然是操作系统和类似资源限制的受害者。
A3:哦,确定,如果单独留下SPOF。然而,理论控制论使我们安全,因为我们可以创建可靠的系统,同时仍然使用容易出错的组件。因此,(M + N) - 失效弹性方案是可以实现的,但预算+创造力+设计纪律是任何此类项目必须生存的最高限度。