消息代理(kafka、rabbitmq)与服务总线(nservicebus)

t3irkdon  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(511)

我读了很多关于这三个系统的书。但我还是不知道该用什么。他们似乎都完成了我需要的:
我希望在另一个服务触发事件/命令/消息时更新客户机服务。我正在跑步 WCF 服务和客户机服务可以主动请求来自其他服务的更新数据。这应该通过消息代理/服务总线进行更改。我也不在乎客户端是否离线并且没有收到更新,因为当它在线时,它会自动通过 WCF 不管怎样。所以我才这么想 Kafka 是错误的方法。另一方面,我在其他公司的安全相关环境中部署了这个软件。由于这是一个遗留应用程序(没有docker或易于部署),需要安装erlang,因此请打开所有端口以进行部署 RabbitMQ 不是一个选择。这给我留下了 NServiceBus .
当我只跑的时候,我会错过任何重要的东西吗 NServiceBus ,而不是常见的 RabbitMQ+NServiceBus 变体?
好像只要我在用 .net 我对你很在行 NServiceBus ?
因为我已经有了 WCF 若要轮询更新的数据,是否只应发送命令以启动 WCF 打电话。或者您应该直接通过消息传递系统发送更新的数据本身?

68de4m5k

68de4m5k1#

注:我是特定软件的开发人员,是nservicebus的制造商。我很抱歉,如果这听起来太像一个广告。
因为我已经有wcf来轮询更新的数据了
我不知道你说的是什么意思。可能您已经在msmq上使用wcf消息传递。这是可能的,也是可行的解决办法。msmq是排队技术,wcf是msmq之上的抽象。
msmq、rabbitmq、azure服务总线、amazonsqs都是排队技术,尽管msmq有点不同,因为它更像一种总线样式,并且分布在不同的机器上。
nservicebus是这些排队技术之上的抽象。nservicebus允许您专注于开发特性,而不是在单个队列技术之上编写管道代码。除此之外,它还添加了大量附加功能。如果您决定不使用nservicebus,您必须自己构建其中的一些特性。这很好,但需要时间。
回答具体问题
如果使用nservicebus,您仍然需要一种排队技术,我们称之为 transport . msmq或rabbitmq或任何你想要的。
当然,但是仍然可以进行本机集成,就像java和.net之间的消息传递一样
那要看情况了。通过消息发送通常更可靠、更快/更容易,因为您不必进行wcf调用。除此之外,您可以慢慢地删除wcf,并且需要较少的具有wcf知识的开发人员。
如果您有更多问题,请随时与我们联系https://particular.net/support/

相关问题