Що робить переадресація через єдиний URI

У моєму клієнті ActiveMQ, коли я вказую, який брокер повинен підключатись, у чому полягає різниця між зазначенням

tcp://host:port

і

failover:(tcp://host:port)

I've tried stopping і starting the broker і in both cases the client finds the broker again when it restarts. I haven't experimented with messages in flow (I'm using queues) or other network failures yet to see if there is a difference.

Сподіваємось, у когось є остаточна відповідь, оскільки документація, яку я знайшла, є дещо розпливчаста.

Дякую

5
У випадку, якщо хтось цікаво, чому я запитую, мій клієнт отримує повторювані EOFExceptions, коли я використовую URI для відмови. На жаль, це робиться лише в певному середовищі, і я намагаюся відтворити його або зрозуміти причину, а я намагаюся зрозуміти наслідки відмови від переходу. EOFExceptions може бути майбутнім питанням!
додано Автор matt helliwell, джерело
У випадку, якщо хтось цікаво, чому я запитую, мій клієнт отримує повторювані EOFExceptions, коли я використовую URI для відмови. На жаль, це робиться лише в певному середовищі, і я намагаюся відтворити його або зрозуміти причину, а я намагаюся зрозуміти наслідки відмови від переходу. EOFExceptions може бути майбутнім питанням!
додано Автор matt helliwell, джерело

6 Відповіді

Якщо ви використовуєте аварійне відключення, бібліотека клієнта переходить у цикл повторного підключення, коли ви втратите зв'язок із сервером. Помилка мережі буде прихована від вашого додатка. Якщо ви не використовуєте перезавантаження, тоді, коли ви втратите ваше з'єднання, то ваш додаток отримає помилку JMS, яка повідомить вам, що ви втратили зв'язок.

5
додано
Дякую. Це має великий сенс.
додано Автор matt helliwell, джерело

Якщо ви використовуєте аварійне відключення, бібліотека клієнта переходить у цикл повторного підключення, коли ви втратите зв'язок із сервером. Помилка мережі буде прихована від вашого додатка. Якщо ви не використовуєте перезавантаження, тоді, коли ви втратите ваше з'єднання, то ваш додаток отримає помилку JMS, яка повідомить вам, що ви втратили зв'язок.

5
додано
Дякую. Це має великий сенс.
додано Автор matt helliwell, джерело

Протокол віддачі дозволяє також надавати деякі корисні параметри з'єднання. Наприклад:

failover:(tcp://host:port)?jms.useAsyncSend=true&timeout=5000

Тут timeout = 5000 переконайтеся, що виникла перша спроба підключення через 5 сек, якщо брокер не доступний або не відповідає.

2
додано
Дякую. Обидва відповіді є правильними, тому я вибрав той, який виявився найбільш корисним і найбільш корисним.
додано Автор matt helliwell, джерело

Протокол віддачі дозволяє також надавати деякі корисні параметри з'єднання. Наприклад:

failover:(tcp://host:port)?jms.useAsyncSend=true&timeout=5000

Тут timeout = 5000 переконайтеся, що виникла перша спроба підключення через 5 сек, якщо брокер не доступний або не відповідає.

2
додано
Дякую. Обидва відповіді є правильними, тому я вибрав той, який виявився найбільш корисним і найбільш корисним.
додано Автор matt helliwell, джерело

Відмовостійкість дуже корисно для вирішення проблеми брекера або системної помилки та забезпечує довговічність.

failover:(tcp://host1:port,tcp://host2:port,tcp://host3:port)?jms.useAsyncSend=true&randomize=false

Тут, якщо ви робите randomized = true, тоді воно буде використовувати всі 3 брокерів одночасно і randomize = false означає використовувати один брокера одночасно, а коли працює брокера знизиться, виберіть будь-якого брокера зі сну брокерів. І useAsyncSend = true запускає систему обміну повідомленнями в асинхронному режимі, що швидко, порівняно з синхронним.

1
додано

Відмовостійкість дуже корисно для вирішення проблеми брекера або системної помилки та забезпечує довговічність.

failover:(tcp://host1:port,tcp://host2:port,tcp://host3:port)?jms.useAsyncSend=true&randomize=false

Тут, якщо ви робите randomized = true, тоді воно буде використовувати всі 3 брокерів одночасно і randomize = false означає використовувати один брокера одночасно, а коли працює брокера знизиться, виберіть будь-якого брокера зі сну брокерів. І useAsyncSend = true запускає систему обміну повідомленнями в асинхронному режимі, що швидко, порівняно з синхронним.

1
додано