我已经阅读了很多有关三个提到的系统的信息。但是我仍然不确定该使用什么。他们似乎都满足了我的要求:
我希望在另一个服务触发事件/命令/消息时更新一个或多个客户端服务。我当前正在运行WCF
服务,并且客户端服务可以主动从其他服务请求更新数据。这应该通过消息代理/服务总线进行更改。
我也不在乎客户端是否脱机并且不接收更新,因为无论如何,它在联机时都会自动通过WCF
获取最新数据。
这就是为什么我认为Kafka
是错误的方法。另一方面,我在其他公司的安全相关环境中部署了该软件。而且由于这是一个旧应用程序(没有docker或不容易部署),需要安装Erlang,因此无法打开RabbitMQ
的所有端口。这给了我NServiceBus
。
仅运行NServiceBus
而不是常见的RabbitMQ+NServiceBus
变体时,我是否会错过重要的事情吗?
似乎只要我专门使用.net
堆栈,我对NServiceBus
就会满意吗?
由于我已经有WCF
来轮询更新的数据,因此您应该仅发送命令来发起WCF
调用。还是应该直接通过邮件系统直接发送更新的数据?
答案 0 :(得分:0)
注意:我是NServiceBus的制造商Particular Software的开发人员。如果这听起来像是商业广告,我对此表示歉意。
因为我已经有WCF可以轮询更新的数据
我不确定您的意思。可能是您已经在MSMQ上通过WCF使用消息传递了。这是可行的,也是可行的解决方案。 MSMQ是排队技术,WCF是在MSMQ之上的抽象。
MSMQ,RabbitMQ,Azure服务总线,Amazon SQS都是排队技术,尽管MSMQ有点不同,因为它更像一种总线样式,并且分布在计算机之间。
NServiceBus是这些排队技术之上的抽象。 NServiceBus使您可以专注于开发功能,而不必在单一排队技术之上编写管道代码。最重要的是,它增加了许多附加功能。如果您决定不使用NServiceBus,则必须自己构建其中一些功能。完全可以,但是需要时间。
回答特定问题
transport
。 MSMQ或RabbitMQ或任何您想要的东西。如果您还有其他问题,请随时通过https://particular.net/support/与我们联系