MassTransit RabbitMQ节点分发

Mik*_*ike 5 esb masstransit rabbitmq

我正在研究在我们的应用程序中使用MassTransit和RabbitMQ作为ESB.我正在寻找的主要好处是为传入的数据流添加持久的异步消息传递处理.

我们的申请资料分为两部分:

传入数据流

  • 单向消息传递
  • 异步处理
  • 每分钟10k +消息

网站活动

  • 两种方式
  • 理想情况下,使用c#async等待语言功能,但需要双向数据
  • 每分钟<100

Web应用程序消息传递不是必需的,但是通过ESB遵循相同的机制来完全抽象化数据访问将是很好的.

问题:

从我读过的; ESB节点不应该知道或关心总线上的任何其他节点,它应该只是做它自己的工作并将消息发送到总线上,等待/当需要时回复.对我而言,这意味着每个Web/app服务器都拥有自己的本地群集队列.这个假设是否正确?

如果这是正确的; 我将如何以编程方式将计算机添加到群集?我需要注意哪些问题?

如果这不正确; 我该如何管理队列集群?创建专用集群有自己的问题,例如DNS条目,冗余/脱机节点的负载平衡等

我对ESB可以添加的功能以及MassTransit的实现感到失望,但是我对在哪里/如何在持久配置中设置它的最佳实践的后勤感到有点阴霾.

感谢您的任何反馈和建议

更新 我们正在将EC2用于机器基础架构,特别是我们使用可用区域来最小化任何数据中心中断.通过此配置,我们有3个区域,每个区域都有一个Web服务器,应用服务器和数据库服务器(Couchbase).我们还利用EC2的负载平衡器来共享区域之间的负载.

@Travis:你有在亚马逊EC2中使用MT/RMQ的经验/建议吗?