0

我们将应用程序部署在两个不同的服务器(Weblogic)中。我们有按计划发送电子邮件的功能。由于我们的应用程序在两台不同的服务器上运行,用户收到两封电子邮件(每封来自一台服务器)。我们需要将其限制为 1。欢迎提出想法。

4

2 回答 2

1

由于您尚未完全描述您的系统但仍在总体考虑,这个问题有很多解决方案

  • 在中心位置标记发送电子邮件可能是数据存储或内存缓存

    将所有预定的电子邮件放在中央存储库中,缓存或数据存储,每个电子邮件发件人应用程序在发送电子邮件时标记已发送的电子邮件,因此如果其他电子邮件发件人组件尚未发送任何电子邮件,其他应用程序将检查任何电子邮件

  • 为电子邮件创建一个单独的组件,从两者获取数据并发送预定的电子邮件:一种可能的解决方案可能是电子邮件发送组件应与主应用程序分离并部署在一个地方,并与电子邮件数据存储或存储库交互并发送预定的电子邮件。

希望这可以帮助

于 2013-03-26T09:03:59.847 回答
0

另一种可能的解决方案可能是有一个队列,并且您有一个 UDQ 和一个 MDB 使用消息并发送电子邮件。当 2 台托管服务器中的一台出现故障时,此解决方案将起作用,并且在您处理许多消息时可以很好地扩展。

如果负载很高,使用 DB 可能会增加瓶颈。

将邮件组件仅放在一台服务器上可能会影响高可用性。

于 2013-03-26T17:11:47.040 回答