gpt4 book ai didi

rabbitmq - MassTransit RabbitMQ 节点分布

转载 作者:行者123 更新时间:2023-12-03 06:26:07 25 4
gpt4 key购买 nike

我正在研究在我们的应用程序中将 MassTransit 与 RabbitMQ 一起用作 ESB。我正在寻找的主要好处是向传入数据流添加持久的异步消息处理。

我们的应用程序配置文件分为两部分:

传入数据流

  • 单向消息传送
  • 异步处理
  • 每分钟超过 10,000 条消息

网站事件

  • 双向
  • 理想情况下使用 C# async wait 语言功能,但需要双向数据
  • <每分钟 100 次

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

问题:

据我所读; ESB 节点不应该知道或关心总线上的任何其他节点,它应该只做自己的工作并将消息发送到总线上,并在需要时等待回复。对我来说,这意味着每个 Web/应用程序服务器都有自己的本地集群队列。这个假设正确吗?

如果这是正确的;我如何以编程方式将机器添加到集群中?有什么我需要注意的问题吗?

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

我对 ESB 可以随 MassTransit 的实现一起添加的功能感到失望,但是我对在持久配置中在何处/如何设置它的最佳实践的逻辑感到有点困惑。

感谢您的反馈和建议

更新我们将 EC2 用于机器基础设施,特别是我们使用可用区来最大程度地减少数据中心中断。通过此配置,我们有 3 个区域,每个区域都有一个 Web 服务器、应用程序服务器和数据库服务器(Couchbase)。我们还利用 EC2 的负载均衡器在区域之间共享负载。

@Travis:您对在 Amazon EC2 中使用 MT/RMQ 有什么经验/建议吗?

最佳答案

因此,我们的 RabbitMQ 集群的规模远远大于您的规模,该集群位于负载平衡(F5)后面。所有使用 MT 的进程都引用负载平衡地址。每个进程唯一需要的是它自己的接收队列。

RabbitMQ (3.0+) 中的集群全部在 RabbitMQ 配置中处理。进程/代码对集群一无所知。

我不确定你在这个问题中所说的“节点”是什么意思,所以很难确保我回答了正确的问题。但是,一旦您将进程添加到 RabbitMQ 中的同一虚拟主机(默认或其他),MT 就会连接它需要的所有部分(交换、队列和绑定(bind))。

关于rabbitmq - MassTransit RabbitMQ 节点分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com