我想了解您的想法,如何通过跨多个服务器运行我的服务流程来水平扩展它。它是一个用 C# 编写的 Windows 服务,它的生活目的是订阅我们公司的 Exchange Web 服务 (EWS),以便在有新的传入电子邮件消息时(通过 HTTP 回调)得到通知。然后,该服务获取电子邮件消息,对其进行处理,如果可能,发送回复,然后返回睡眠状态并等待下一封传入的电子邮件。
如果我在不止一台机器上运行它,我可以让它们都订阅 EWS 通知,或者只让它们中的一个。如果我让他们都订阅,我会有点犹豫,因为它可能会给我们的 MS Exchange 基础架构增加负担。这也将导致所有机器接收和处理电子邮件。对于给定的请求消息,我不希望发件人收到 N 次回复(其中 N 是场中的服务器数量)!现在,如果我只有一台订阅 EWS 的机器,这会使我面临单点故障。
我想听听你关于如何解决这个问题的建议。我希望多台服务器通过在它们之间分发电子邮件来处理传入的消息(也许我必须通过使用消息队列服务器来做到这一点)。谢谢。