C# 分布式桌面应用程序的RabbitMq体系结构决策
我们正在重新编写零售ERP应用程序的一部分,该应用程序是在.net 4.0 Windows应用程序中编写的,后端服务通过.net远程处理一路连接。我的问题是关于我在此处发现的内容的后续更新问题() 我们的应用程序在体系结构上类似,但在业务功能上稍微复杂一些,它是一个企业应用程序。重新写入的原因是通过分离非关键功能以通过RabbitMQ和使用Mongo DB或Redis缓存的客户机上的主数据缓存(与清单、税务、价格表等变化不大)来提高性能和可靠性 在上面链接中已回答的消息队列前端,我的选择是C# 分布式桌面应用程序的RabbitMq体系结构决策,c#,mongodb,rabbitmq,easynetq,C#,Mongodb,Rabbitmq,Easynetq,我们正在重新编写零售ERP应用程序的一部分,该应用程序是在.net 4.0 Windows应用程序中编写的,后端服务通过.net远程处理一路连接。我的问题是关于我在此处发现的内容的后续更新问题() 我们的应用程序在体系结构上类似,但在业务功能上稍微复杂一些,它是一个企业应用程序。重新写入的原因是通过分离非关键功能以通过RabbitMQ和使用Mongo DB或Redis缓存的客户机上的主数据缓存(与清单、税务、价格表等变化不大)来提高性能和可靠性 在上面链接中已回答的消息队列前端,我的选择是 将在
- 如果我们理解其中的复杂性,RabbitMQ是更好的选择吗?我们不想以后后悔
- 在RabbitMQ客户机上,我们只使用带有高级绑定的EasyNetQ。现在,我开始将它与MassTransit进行比较,当我搜索它时,还有一些其他的建议(卡夫卡似乎是另一个更好的候选人,如评论中所建议的)。有没有其他开源插件更适合(开箱即用)这个用例
希望我已经提供了足够的细节并遵守了指导原则。如果我不是,请原谅。RabbitMQ不保留消息顺序。因此,如果你依赖于这一点,那就和卡夫卡一起去吧。这个问题太大了。但是,您可以抽象队列,使其可以是msmq、rabbitmq、Zeromq,并且,为了让您的工作更顺利,您可能需要使用actor模型检查orleans或akka.net作为完整的替代方案。@Karolis对此感到惊讶。然后,如果我选择RabbitMQ,我必须从马车上卸下一些用例。今天我在看卡夫卡的视频。只是担心学习曲线和路障可能会让我回到起点。@Karolis Kafka似乎是一个更好的选择。但我担心的是在Windows上安装卡夫卡所需的自定义安装步骤。此外,由于此应用程序环境将是一些客户的台式PC,因此不会全天候运行。当服务器脱机时,客户端应用程序尝试发送的可能性为1%。除了在客户端使用一些自定义缓存之外,还有更好的缓冲方法吗。