RabbitMq Архитектурное решение для приложения Distributed Desktop

Мы переписываем некоторую часть нашего приложения Retail ERP, которое было написано в Windows-приложении.net 4.0 с внутренними службами, подключенными через.Net. Мой вопрос является последующим и обновленным вопросом о том, что я нахожу здесь ( RabbitMq Architecture для распределенных POS).

Наше приложение схоже по архитектуре, но немного сложнее в бизнес-функциях, и это приложение Enterprise. Причиной переписывания является повышение производительности и надежности за счет разделения некритических функций для прохождения RabbitMQ и кэширования основных данных (которые не сильно меняются, например, инвентарный список, налог, прайс-лист и т. Д.) На клиентском компьютере. используя Mongo DB или Redis Cache.

На фронте очереди сообщений, на который уже ответили по приведенной выше ссылке, мой выбор будет

  1. Создаст необходимую очередь на сервере RabbitMQ по одной для каждого хранилища на сервере BackOffice и установит постоянство в true до запуска клиента.
  2. Обмен будет темой обмена и каждый
  3. Оставит очереди на оплату в брокере магазина и использует только клиент приложения в Tills для получения данных о транспортировке.
  4. Tills НЕ будет иметь свою собственную базу данных, кроме Caching, и будет напрямую подключаться к серверу в магазине.

Мой вопрос сейчас таков:

  • Является ли RabbitMQ лучшим выбором, если мы понимаем сложности? Мы не хотим сожалеть позже
  • На клиенте RabbitMQ мы работаем только с EasyNetQ с расширенной привязкой. Теперь я начал сравнивать его с MassTransit, и когда я искал его, было несколько других предложений (кажется, Кафка - еще один лучший кандидат, как это предлагается в комментарии). Есть ли другой плагин с открытым исходным кодом, который лучше подходит (из коробки) к этому UseCase?

Надеюсь, я дал достаточно подробностей и придерживался руководящих принципов. Пожалуйста, извините, если я не.

0 ответов

Другие вопросы по тегам