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