уже 3 средства и все оказались с нюансами.
1) RabbitMq.Client - дает полный контроль в работе с брокером, но все приходится делать вручную (сериализацию, дересерализацию, re-try и т.д, обработку исключений). Т.е нельзя просто создать контроллер с модельком, привязать его к очереди и чтобы он магически вызывался.Все вручную
2) Masstransit. Мощная абстракция (консьюмеры, команды, события) и даже хорошо кастомизируемая, но иногда навязывает свой подход. Например если придут и скажут "потребляйте сообщения из этой очереди" - не факт, что у вас получится. Так как консьюмер в масс-транзите нельзя просто привязат к очереди - он обязательно хочется создать свой exchange и очередь к нему...
3) Rebus - говно какое-то. На обоих концах должен быть ребус, а он - на минутку только для .net
RabbitMQ он использует просто как транспорт и творит там, что хочет - добавляет кучу метаинформации в тело сообщения и т.д....
Сейчас делемма такая: RabbitMq.Client - достаточно низкоуровневая. Нужно прям мини-фреймвор для проекта написать, прежде, чем это будет удобно работать. Masstransit не дает свободу действий. Особенно в плане потребления сообщений...
1
Обсуждают сегодня