【发布时间】:2015-11-26 14:18:35
【问题描述】:
我正在构建应该由 3 台服务器组成的系统,并且相同的 Java (Spring mvc) 服务将在所有 3 台服务器上运行。 Service 将能够执行 3 类任务,即 A、B 和 C。
我想要的是让服务器上的每个服务在与其他服务器通信时只执行一个类别。如果一台服务器死机,其余服务器应进行协商,并且只有其中一台服务器应采取类别。
例子:
-
服务器 1 - 服务执行 A
服务器 2 - 服务 B
服务器 3 - 服务执行 C
-
服务器 2 死亡
服务器 1 和服务器 3 协商
服务器 1 - 服务执行 A 和 B
服务器 3 - 服务执行 C
如果服务器 2 恢复正常状态,它应该从服务器 1(A 或 B)获取类别
是否有任何模式、架构、技术、链接可以帮助我解决这个问题?
【问题讨论】:
-
这个问题最好在serverfault.com 这样的网站上提出。 StackOverflow 是关于提出关于编程的问题,而不是一般的架构问题。
-
您可以通过让所有服务器执行所有任务来大大简化它。然后使用 RabbitMQ 或 Amazon SQS 之类的消息队列来分发任务。
标签: java design-patterns architecture