gpt4 book ai didi

distributed - 我应该在什么级别上实现分布式系统上节点之间的通信?

转载 作者:行者123 更新时间:2023-12-02 00:57:15 26 4
gpt4 key购买 nike

我正在构建一个 Web 应用程序,从第一天起,该应用程序就受到单个服务器处理能力的限制。所以我正在考虑采用具有多个相同节点的分布式架构。目标是提供可扩展性(添加服务器以容纳更多用户)和容错能力。节点之间需要共享一些状态,因此它们之间需要进行一些通信。我相信我有以下替代方案可以在 Java 中实现此通信:

  • 使用套接字和自定义协议(protocol)来实现它。
  • 使用 RMI
  • 使用 Web 服务(每个节点都可以发送和接收/解析 HTTP 请求)。
  • 使用 JMS
  • 使用另一个高级框架,如 Terracottahazelcast

我想知道这些技术之间的比较如何:

  • 当节点数量增加时
  • 当节点之间的通信量增加时(每秒 1000 条消息和/或高达 100KB 的消息等)
  • 在实践层面(例如易于实现、可用文档、许可问题等)
  • 我还想知道人们在实际生产项目(而不是实验或学术项目)中使用了哪些技术。

最佳答案

别忘了Jini

它为您提供自动服务发现、服务租赁和可下载代理,以便实际的客户端/服务器通信协议(protocol)由您决定,而不是由框架强制执行(例如,您可以选择 HTTP/RMI/其他协议(protocol))。

该框架是围绕 8 Fallacies of Distributed Computing 的认可而构建的和 recovery-oriented computing 。也就是说,您遇到网络问题,而该架构的构建是为了帮助您恢复和维护服务。

如果您还使用Javaspaces实现工作流程和消费者-生产者架构很简单。生产者将写入 Javaspace,一个或多个消费者将从该空间(在事务下)获取该工作并使用它。因此,您只需通过提供更多消费者来扩展规模。

关于distributed - 我应该在什么级别上实现分布式系统上节点之间的通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1158317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com