У меня было два брокера ActiveMQ (A и B), которые были настроены как сеть хранения. Они отлично работают для пересылки сообщений от A до B, когда есть потребитель, подключенный к брокеру B, и производитель отправляет сообщения A. Проблема заключается в том, что, когда потребитель убит и подключен к A, поставленные в очередь сообщения на B (они были отправлены из A) не будет отправляться обратно в A, к которому подключен потребитель. Даже я отправляю новые сообщения в B, все сообщения застряли на B, пока я не перезапущу брокеров. Я попытался установить networkTTL = "4" и duplex = "true" в сетевом коннекторе брокера, но он не работает.Сеть брокерской сети ActiveMQ не передает сообщения
ответ
Поздний ответ, но, надеюсь, это поможет кому-то еще в будущем.
Сообщения застревают в B, потому что по умолчанию AMQ не позволяет отправлять сообщения брокеру, к которому они ранее были доставлены. В нормальном случае это не позволяет сообщениям циклически перемещаться по сетчатым сетевым топологиям без доставки, но в случае сбоя в результате этого возникают сообщения, прикрепленные к одному брокеру и неспособные добраться до брокера, где находятся все потребители.
Чтобы разрешить сообщениям вернуться к брокеру, если текущий брокер является тупиком, потому что к нему не подключены потребители, вы должны использовать replayWhenNoConsumers = true, чтобы разрешить пересылку сообщений, которые застряли на B обратно на A.
Этот вариант конфигурации, некоторые настройки, которые вы можете использовать в сочетании с ним, и некоторые соображения при использовании его, описаны в «задержались сообщения (версия 5.6)» раздел http://activemq.apache.org/networks-of-brokers.html, http://tmielke.blogspot.de/2012/03/i-have-messages-on-queue-but-they-dont.html и https://issues.apache.org/jira/browse/AMQ-4465. Убедитесь, что вы можете жить с побочными эффектами этих изменений (например, возможность дублирования доставки сообщений другими сообщениями через ваши сетевые подключения брокера к брокерам).
Можете ли вы предоставить дополнительную информацию о конфигурации брокера A и B, а также о том, чего вы пытаетесь достичь?
Мне кажется, что вы можете достичь того, чего хотите, установив сеть брокеров (с A и B), при этом производитель только подключается к одному, потребитель к другому. Сообщения будут автоматически переданы другому брокеру, если у другого брокера активная подписка на адрес, на который было отправлено сообщение.
Я бы не рекомендовал менять networkTTL, если вы не уверены в его последствиях (это приводит к появлению нежелательных сообщений).
- 1. ActiveMQ - настройка брокерской сети
- 2. Схема подключения сети брокерской сети ActiveMQ
- 3. ActiveMQ C# + сеть брокеров
- 4. Сеть брокерских центров ActiveMQ:
- 5. Статическая сеть ActiveMQ: как я могу удалить сообщения при отключении?
- 6. Консультационные темы ActiveMQ для подключений, не перенаправленные в сеть брокеров?
- 7. ActiveMQ JMS Прочная тема в сети брокеров
- 8. Сеть посредников ActiveMQ true P2P
- 9. Apache ActiveMQ 5.5+ Брокерские сети
- 10. Код node.js не передает сообщения
- 11. Volley не передает параметры сообщения
- 12. Поддержка брокерской поддержки XMPP в activemq 5.7 и 5.8
- 13. ActiveMQ сети брокеров приводит к высокой латентности сообщения отправкой
- 14. ActiveMQ, Сеть брокеров, автономный прочный абонентский дедуп
- 15. Сеть брокеров ActiveMQ с длительными темами подписки
- 16. Сеть брокерских агентств ActiveMQ увеличила задержку
- 17. ActiveMQ не распространяет сообщения между брокерами
- 18. Java Socket не передает данные по сети
- 19. ActiveMQ предупреждает старые сообщения
- 20. Очистить старые сообщения activemq
- 21. ActiveMQ - десериализация сообщения ActiveMQBytesMessage
- 22. Мастер activemq, не отказываясь от сбоя сети
- 23. ActiveMQ сообщения верблюда
- 24. Подтверждение сообщения Activemq
- 25. Выбор сообщения ActiveMQ JMS
- 26. Сеть Activemq с различными версиями сервера
- 27. Потерянная сеть против перегруженной сети
- 28. NLog не передает сообщения с Obfuscation
- 29. OpenArgs не передает переменную для сообщения
- 30. Сообщения ActiveMQ dequeud, но не используются