使用RabbitMQ的MassTransit上真正需要的唯一ReceiveFrom地址在哪里? 背景

使用RabbitMQ的MassTransit上真正需要的唯一ReceiveFrom地址在哪里? 背景,rabbitmq,masstransit,Rabbitmq,Masstransit,我的团队是完全的noobs,拥有大众交通和信息服务。我理解网上的简单演示,但我对如何为非琐碎场景设置感到困惑。(许多生产者,许多消费者,消费者与生产者沟通) 目前,我们通过同步调用直接从web代码进行第三方web服务调用。其中一些是出了名的缓慢和不可靠,以至于浏览器超时和YSODs不是我们代码的直接错误。我们希望用消息替换这些同步调用,并最终实现重试和中毒队列的一致性 我们还希望用消息传递取代各种计划/批处理任务,以更接近实时处理,而不是等待下一批运行 我们的网站在一个硬件负载平衡器后面的6台I

我的团队是完全的noobs,拥有大众交通和信息服务。我理解网上的简单演示,但我对如何为非琐碎场景设置感到困惑。(许多生产者,许多消费者,消费者与生产者沟通)

目前,我们通过同步调用直接从web代码进行第三方web服务调用。其中一些是出了名的缓慢和不可靠,以至于浏览器超时和YSODs不是我们代码的直接错误。我们希望用消息替换这些同步调用,并最终实现重试和中毒队列的一致性

我们还希望用消息传递取代各种计划/批处理任务,以更接近实时处理,而不是等待下一批运行

我们的网站在一个硬件负载平衡器后面的6台IIS服务器上运行。另外还有两个“应用程序”服务器运行计划任务。我想我们会把新的worker服务放在应用服务器上,或者甚至是所有8台服务器上

问题 所以。。。MT文档中的“common gotchas”部分指出,每个应用程序都需要自己的地址。我的问题是,在这种情况下,应用程序的确切定义是什么

我有6个网络服务器运行该网站。是否每个都需要一个唯一的地址,或者它们都可以是“rabbitmq://localhost/MyApp/Website". 如果为多个工作进程配置了IIS怎么办?每个人都需要一个不同的兔子地址吗

同样的问题也适用于我的2台应用服务器。如果我在两个框上运行同一个worker,它是否需要不同的地址?有些东西说,如果你想让竞争对手的消费者共享一个地址,但如果你想让“事件”类型的消息传递给每个人,他们需要不同的地址

如果需要将事件(广播)和命令(消耗一次)消息发送到工作集群,该怎么办?(同一工人的多个实例以处理更多负载。)

如果我让消费者直接托管在web应用程序中会怎么样?(我不确定这是一个好主意。)


那么请求/响应消息呢?我假设响应应该返回到原始web服务器。否则,MT请求调用将永远不会解除阻止,或者在最佳超时时间。

IServiceBus的每个实例都需要自己的ReceiveFrom地址。是的,如果有多个工作进程,每个进程都应该有自己的队列。您可以在web应用程序中为此使用临时队列


对于竞争消费者,作为消费者之一的每个进程/
IServiceBus
都应该是一个精确的副本。如果有一个活动不需要竞争,那么它需要有自己的流程

你说的临时排队是什么意思?在启动过程中,只需在末尾粘贴一个新的GUID或其他东西?对于RabbitMQ,使用rabbitmq://localhost/*?临时=对于临时队列为真