And*_*rés 5 java architecture design-patterns java-ee ejb-3.1
当EJB依赖于另一个仍未启动的集群中的应用程序时,应如何初始化EJB?
我该怎么办?
你觉得我该怎么办?你能推荐我一些模式吗?
我认为以上建议都是有效的。我认为这取决于你的问题所在的环境。
根据您是否可以独立启动 A,您可以使用建议的第三个元素(如建议的 Gas)来保证如果 B 未准备好,A 不会出现(并失败或卡住)。
另一方面,如果 A 自动启动并且您无法更改它,那么这取决于您是否可以控制初始化过程何时发生。如果你安排了整个依赖链的初始化并且它应该可以工作,但是如果你不知道或无法控制 B 何时上线并且 A 无论如何都会启动,那么别无选择,只能轮询直到 B 上线向上。
就我个人而言,我发现轮询并没有那么糟糕,只要您等待的内容可以快速启动或在发生故障时快速恢复。
另一方面,您不能通过配置来控制集群的启动方式吗?如果使第二个应用程序的集群始终首先启动,则可以避免该问题。