我正在构建一个Web应用程序,从第一天起,它将处于单个服务器可以处理的范围内。所以我正在考虑采用具有多个相同节点的分布式架构。目标是提供可扩展性(添加服务器以容纳更多用户)和容错。节点需要在它们之间共享某些状态,因此需要它们之间的某些通信。我相信我有以下替代方法在Java中实现这种通信:
我想知道这些技术如何相互比较:
答案 0 :(得分:1)
不要忘记Jini。
它为您提供自动服务发现,服务租赁和可下载代理,以便实际的客户端/服务器通信协议由您决定,而不是由框架强制执行(例如,您可以选择HTTP / RMI /无论如何)。
该框架围绕对8 Fallacies of Distributed Computing和recovery-oriented computing的确认而构建。即将存在网络问题,并且该体系结构旨在帮助您恢复和维护服务。
如果您还使用Javaspaces,那么实现工作流程和消费者 - 生产者体系结构是微不足道的。生产者将写入Javaspaces,一个或多个消费者将从空间(在交易下)从事该工作并使用它。因此,您只需提供更多消费者即可扩展它。