我们将应用程序部署在两个不同的服务器(Weblogic)中。我们有按计划发送电子邮件的功能。由于我们的应用程序在两个不同的服务器上运行,因此用户收到2封电子邮件(每封服务器一封)。我们需要将其限制为1.欢迎提出意见。
答案 0 :(得分:1)
由于您没有完全描述您的系统但仍然在考虑,这个问题有很多解决方案
在中央位置标记发送电子邮件可能是数据存储或内存缓存:
将所有预定的电子邮件放在中央存储库中,缓存或数据存储,每个电子邮件发件人应用程序都标记发送电子邮件时发送的电子邮件,以便其他应用程序检查任何电子邮件(如果尚未由其他电子邮件发件人组件发送)
希望这有帮助
答案 1 :(得分:0)
另一种可能的解决方案可能是拥有一个队列,并且您有一个UDQ和一个消费该消息并发送电子邮件的MDB。当您处理许多消息时,当两个托管服务器中的一个出现故障并且扩展性良好时,此解决方案将起作用。
如果您的负载很高,使用DB可能会增加瓶颈。
将邮件组件仅放在一台服务器上可能会影响高可用性。