Rabbitmq MassTransmit-分布式消息传递模型-可靠/持久-NServiceBus太贵

Rabbitmq MassTransmit-分布式消息传递模型-可靠/持久-NServiceBus太贵,rabbitmq,nservicebus,servicebus,masstransit,Rabbitmq,Nservicebus,Servicebus,Masstransit,我想使用MassTransmit,与NServiceBus类似,每个发布者和订阅者都有一个本地队列。但是我想使用RabbitMQ 那么,我的所有桌面客户端都必须安装RabbitMQ吗?我想是的,那么我应该只将50个桌面客户端和2个服务器连接到一个集群中吗 我知道这两台服务器必须在同一个集群中。然而,50个客户机节点,似乎是一个在一个集群中放置的bi tmuch…..或者我应该将它们铲掉还是将它们联合到服务器集群交换 桌面计算机会发送如下消息:LockOrder、UnLock Order 服务器正

我想使用MassTransmit,与NServiceBus类似,每个发布者和订阅者都有一个本地队列。但是我想使用RabbitMQ

那么,我的所有桌面客户端都必须安装RabbitMQ吗?我想是的,那么我应该只将50个桌面客户端和2个服务器连接到一个集群中吗

我知道这两台服务器必须在同一个集群中。然而,50个客户机节点,似乎是一个在一个集群中放置的bi tmuch…..或者我应该将它们铲掉还是将它们联合到服务器集群交换

桌面计算机会发送如下消息:LockOrder、UnLock Order

服务器正在处理后端hl7消息

非常感谢这里的任何帮助和建议,这些都是在windows机器上提供的

基本上,我把NServiceBus抛在了后面,因为它现在太贵了,他们把它瞄准了预算大的大公司,因此也就是Masstransmit

但是,我需要可靠/持久的消息传递,因此所有发布者和所有订阅者都需要本地队列

桌面还使用CQS更新其视图

我是否应该将50台桌面客户端和2台服务器连接到一个集群中

是的,您必须将客户端连接到群集

然而,50个客户机节点,似乎是一个在一个集群中放置的bi tmuch

不,(或者取决于你的服务器有多大)50个客户端是一个小数目

或者我应该清除它们还是将它们联合到服务器群集exchange? 桌面计算机会发送如下消息:LockOrder、UnLock Order

我认为集群更好,因为联合和铲是异步的,这意味着您的
LockOrder
无法及时复制

但是,我需要可靠/持久的消息传递,因此所有发布者和所有订阅者都需要本地队列

使用RMQ,您可以创建一个持久队列和消息,如果客户端已连接,则无需创建持久队列和消息。它将在连接到代理时获取消息


我希望它能有所帮助。

我有一个名为Shuttle的FOSS ESB项目,如果您想了解一下:

我已经有一段时间没用过NServiceBus了,实际上是在Shuttle投入商业运营时启动的。该实现与NServiceBus有些不同。不过,我一点也不知道MassTransit。目前,流程经理(SAGA)必须在穿梭机上手动滚动,而MassTransit和NServiceBus则将其合并。如果我真的开始添加sagas,我会将它们添加为一个模块,可以插入接收管道。通过这种方式,可以有多种实现方式,并选择您喜欢的口味:)

回到你的问题上来。Shuttle的概念是为RabbitMQ等排队技术提供可选发件箱。Shuttle确实有一个RabbitMQ实现。我相信发件箱的工作原理有点像“铲子”。因此发件箱将是本地的,发送消息将首先进入发件箱。它会定期尝试向收件人发送消息,并在可配置的尝试次数后,将消息发送到错误队列。然后,可以将其返回发件箱进行进一步尝试,甚至在它启动后直接移动到收件人队列


此处的文档:

Hi Gas,非常感谢您的回复。我喜欢集群的一些好处。查看消息传递吞吐量的集成仪表板非常棒。然而,集群有一个缺点。升级时,我必须关闭所有节点以升级Erlang引擎或RMQ软件。如果它是联邦的或被铲掉的,那么它可以在总线上与不同版本的RMQ一起工作……你有什么想法?此外,我意识到我需要构建一些强大的脚本来设置集群队列以进行管理和部署,但这应该很简单,制作一个部署工具。您好@Romiko,是的,您是对的,但是有一些技巧可以避免关闭所有集群节点。例如,在更新时分离一个节点,重定向连接。。。(只是有点复杂,但并非不可能)。通常集群更新是一种罕见的操作,我认为在您的情况下,集群应该是更好的解决方案。你是对的,联盟和铲子更灵活,可以使用不同的代理和Erlang版本运行。根据您的要求进行选择。让我知道。