NServicebus+RabbitMQ и дистрибьютор

Паттерн NServiceBus Distributor/Worker идеально подходит для MSMQ из-за жестких требований к локальным очередям ввода.

Но это не так с RabbitMQ, я пытаюсь понять, как и когда дистрибьютор NServiceBus имеет отношение к RabbitMQ. С RabbitMQ несколько рабочих могут читать из одной и той же удаленной очереди.

Фактический сценарий аналогичен использованию группы автоматического масштабирования AWS для масштабирования рабочих, указывающих на высокодоступный кластер RabbitMQ. Теперь полное отсутствие дистрибьютора значительно упрощает настройку, тестирование и настройку.

Мысли?

2 ответа

Решение

NServiceBus - отличная система, которая творит чудеса в большинстве систем очередей сообщений, где у вас нет интегрированного дистрибьютора (что вы делаете с обменами в RabbitMQ). Мы используем NServiceBus здесь, в нашей компании.

Очереди Azure и MSMQ являются прекрасными примерами таких технологий очередей.

NServiceBus обрабатывает дистрибуцию внутри и поэтому воспроизводит эту возможность для вас.

Однако... Если вы наделены возможностью навязывания того, какую технологию очередей вы можете использовать, то я настоятельно рекомендую вам изучить RabbitMQ и продукт (с открытым исходным кодом) под названием MassTransit.

http://masstransit-project.com/

MassTransit, в свою очередь, может работать в двух режимах и будет либо делегировать, либо моделировать распределение для вас - однако у меня, тем не менее, есть слабость к NServiceBus, как и у наших старших разработчиков здесь.

На этой странице... http://docs.particular.net/nservicebus/load-balancing-with-the-distributor Использование распространителя полезно только при использовании MSMQ - если вы не используете MSMQ, в этом нет никакого смысла. RabbitMQ и другие транспортные средства будут разрешать доступ к одной и той же очереди от нескольких потребителей, а MSMQ - нет. В двух словах распространитель будет принимать сообщения из основной очереди и распределять их по нескольким рабочим очередям, когда они сообщают, что они выполнили все, над чем они работают.

Поскольку транспорт RabbitMQ попадает в шину в стиле брокера, в вашем случае было бы больше смысла не использовать дистрибьютора.

То же самое относится ко всем транспортам в стиле брокера, где вы можете использовать конкурирующий потребительский шаблон для масштабирования.

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