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

Distributed 我应该在什么级别实现分布式系统上节点之间的通信?,distributed,Distributed,我正在构建一个web应用程序,从第一天起,它将受到单个服务器所能处理的限制。因此,我正在考虑采用具有多个相同节点的分布式体系结构。目标是提供可伸缩性(添加服务器以容纳更多用户)和容错性。节点之间需要共享一些状态,因此需要进行一些通信。我相信我有以下几种方法可以用Java实现这种通信: 使用套接字和自定义协议实现它 使用RMI 使用web服务(每个节点都可以发送和接收/解析HTTP请求) 使用JMS 使用其他高级框架,如或 我想知道这些技术之间的比较: 当节点数增加时 当节点之间的通信量增加

我正在构建一个web应用程序,从第一天起,它将受到单个服务器所能处理的限制。因此,我正在考虑采用具有多个相同节点的分布式体系结构。目标是提供可伸缩性(添加服务器以容纳更多用户)和容错性。节点之间需要共享一些状态,因此需要进行一些通信。我相信我有以下几种方法可以用Java实现这种通信:

  • 使用套接字和自定义协议实现它
  • 使用RMI
  • 使用web服务(每个节点都可以发送和接收/解析HTTP请求)
  • 使用JMS
  • 使用其他高级框架,如或
我想知道这些技术之间的比较:

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

    它为您提供了自动服务发现、服务租赁和可下载代理,因此实际的客户机/服务器通信协议由您决定,而不是由框架强制执行(例如,您可以选择HTTP/RMI/任何内容)

    该框架是围绕对和的确认而构建的。i、 e.您将遇到网络问题,而构建该体系结构是为了帮助您恢复和维护服务

    如果您还使用它,那么实现工作流和消费者-生产者体系结构就很简单了。生产者将写入JavaSpace,一个或多个消费者将从该空间(在事务下)获取该工作并使用它。因此,您可以通过提供更多的消费者来扩展它