Я в настоящее время оцениваю системы очередей сообщений, и RabbitMq кажется хорошим кандидатом, поэтому я немного углубился в это.
Чтобы дать немного контекста, я ищу что-то вроде одной обменной нагрузки, уравновешивающей публикацию сообщений в нескольких очередях. Я не хочу дублировать сообщения, поэтому обмен фанатами не возможен.
Кроме того, причина, по которой я думаю о наличии нескольких очередей против одной очереди, обрабатывающей циклический прием с потребителями, заключается в том, что я не хочу, чтобы наша единственная точка отказа находилась на уровне очереди.
Звучит так, будто я мог бы добавить некоторую логику на стороне издателя для имитации этого поведения, отредактировав ключ маршрутизации и установив соответствующие привязки на месте. Но это своего рода пассивный подход, который не учитывает скорость потребления сообщений в каждой очереди, что может привести к заполнению одной очереди, если пользовательские приложения для этой очереди будут мертвыми.
Я искал более активный способ со стороны объекта обмена, который бы решал, куда отправить следующее сообщение, основываясь на каждом размере очереди или чем-то в этом роде.
Я читал об Алисе и доступных API-интерфейсах RESTful, но это похоже на мощное решение для реализации решений по быстрой маршрутизации.
Кто-нибудь знает, возможен ли циклический перебор между обменными очередями с RabbitMQ? Спасибо.