Давайте рассмотрим приведенный ниже сценарий.RabbitMQ clustering model
Существует 3 брокера RabbitMQ (B1, B2, B3), развернутых в кластерной модели. Существует обмен E с привязками, который реплицируется для всех 3 брокеров. Существует производитель P и 3 потребителя C1, C2, C3. У меня есть следующие вопросы
позволяет сказать, что производитель подключается к брокеру B1 и создает очередь Q, который отражал В2. Теперь, когда потребитель подключается к Брокеру B3, как он получает сообщения в очереди?
По моему мнению, информация об обмене и привязке хранится в памяти каждого брокера. Если обмен является постоянным, для восстановления после сбоев брокера, информация об обмене и привязке также сохраняется на диске во всех брокерах?
Если вся очередь хранится в памяти во всех зеркальных брокерах, она потребляет много памяти у брокера. Чтобы поддерживать потенциально большое количество очередей, каждый из которых содержит миллионы сообщений в каждом брокере, не является ли это препятствием для масштабируемости?
Хорошая точка на 3-м предмете. Сервер очередей не должен выступать в качестве огромного буфера для остальной части приложения - скорее, он должен облегчить общую функцию приложения и вообще быть пустым. – theMayer
@Martin: В первом случае, когда вы говорите, что потребитель в конечном итоге будет потреблять главный узел, справляется ли брокер с мастером? –