RabbitMq分布式桌面应用程序的架构决策

时间:2017-05-20 08:53:35

标签: c# mongodb rabbitmq easynetq

我们正在重写我们的零售ERP应用程序的一部分,该应用程序是用.net 4.0 Windows应用程序编写的,后端服务通过.Net远程连接。我的问题是关于我在这里找到的内容的后续和更新问题(RabbitMq Architecture for distributed POS)。

我们的应用程序在架构上类似,但在业务功能方面稍微复杂一些,它是一个企业应用程序。重写的原因是通过将非关键函数分离到RabbitMQ并在客户端计算机上缓存主数据(不会像库存清单,税,价格表等那样变化)来提高性能和可靠性使用Mongo DB或Redis缓存。

在上面链接中已经回答的消息队列前面,我的选择是,

  1. 将在RabbitMQ服务器中为BackOffice服务器中的每个商店创建一个必要的队列,并在启动客户端之前将持久性设置为true。
  2. Exchange将成为主题交换和每个
  3. 将Tills队列留在商店的经纪人上,并仅使用Tills上的应用程序客户端来获取运输数据。
  4. 除了缓存外,Tills不会有自己的数据库,而是直接连接到店内服务器。
  5. 我现在的问题是,

    • 如果我们了解所涉及的复杂性,RabbitMQ是更好的选择吗?
    • 我们不想后悔
    • 在RabbitMQ客户端上,我们仅使用具有高级绑定功能的EasyNetQ。现在开始将它与MassTransit进行比较,当我搜索它时还有其他一些建议(Kafka似乎是评论中建议的另一个更好的候选者)。是否有其他开源插件更适合(开箱即用)此UseCase?

    希望我已经提供了足够的细节并遵守了指南。如果我不是,请原谅。

0 个答案:

没有答案
相关问题