RabbitMq Архитектурное решение для приложения Distributed Desktop
Мы переписываем некоторую часть нашего приложения Retail ERP, которое было написано в Windows-приложении.net 4.0 с внутренними службами, подключенными через.Net. Мой вопрос является последующим и обновленным вопросом о том, что я нахожу здесь ( RabbitMq Architecture для распределенных POS).
Наше приложение схоже по архитектуре, но немного сложнее в бизнес-функциях, и это приложение Enterprise. Причиной переписывания является повышение производительности и надежности за счет разделения некритических функций для прохождения RabbitMQ и кэширования основных данных (которые не сильно меняются, например, инвентарный список, налог, прайс-лист и т. Д.) На клиентском компьютере. используя Mongo DB или Redis Cache.
На фронте очереди сообщений, на который уже ответили по приведенной выше ссылке, мой выбор будет
- Создаст необходимую очередь на сервере RabbitMQ по одной для каждого хранилища на сервере BackOffice и установит постоянство в true до запуска клиента.
- Обмен будет темой обмена и каждый
- Оставит очереди на оплату в брокере магазина и использует только клиент приложения в Tills для получения данных о транспортировке.
- Tills НЕ будет иметь свою собственную базу данных, кроме Caching, и будет напрямую подключаться к серверу в магазине.
Мой вопрос сейчас таков:
- Является ли RabbitMQ лучшим выбором, если мы понимаем сложности? Мы не хотим сожалеть позже
- На клиенте RabbitMQ мы работаем только с EasyNetQ с расширенной привязкой. Теперь я начал сравнивать его с MassTransit, и когда я искал его, было несколько других предложений (кажется, Кафка - еще один лучший кандидат, как это предлагается в комментарии). Есть ли другой плагин с открытым исходным кодом, который лучше подходит (из коробки) к этому UseCase?
Надеюсь, я дал достаточно подробностей и придерживался руководящих принципов. Пожалуйста, извините, если я не.