Обратите внимание на два важных момента:
- A
connector
- это не обязательно , в зависимости от вашего варианта использования. Вы обнаружите, что по умолчанию broker.xml
не имеет определенных элементов connector
. Например, если вы просто запустите ./artemis create
, сгенерированный broker.xml
будет , а не содержит какие-либо элементы connector
. - Приведенная вами документация довольно старая (с самого первого выпускаArtemis). Вы можете извлечь пользу из прочтения последней документации , которая была обновлена для ясности во многих местах.
Как отмечено в документации и другом ответе на Stack Overflow, который вы цитировалинекоторые компоненты в посреднике должны подключаться к другим посредникам (например, мосты ядра, соединения кластера и т. д.). connector
инкапсулирует информацию, необходимую для этих других компонентов, для создания необходимых им соединений. Это действительно так просто.
Теперь по вашим индивидуальным вопросам ...
Даже если этот сервер является частью кластера, какова роль соединителя?
В случае кластера, использующего broadcast-group
и discovery-group
, каждый узел в кластере должен передать всем другим узлам в кластере, как другие узлы могут подключаться ксам. Это делается путем трансляции connector
, на который есть ссылка в конфигурации cluster-connection
. Когда другие узлы в кластере получают эту широковещательную рассылку, они берут информацию connector
и используют ее для подключения обратно к узлу, который первоначально транслировал ее. Таким образом, узлы могут динамически обнаруживать и соединяться друг с другом. Также стоит отметить, что в этом случае конфигурация connector
будет по существу отражать одну из конфигураций acceptor
брокера (поскольку connector
будет использоваться другими узлами для подключения к acceptor
широковещательного узла). Это обсуждается далее в документации кластера .
... коннекторы используются клиентом для определения того, как он подключается к серверу ...
Этот фрагмент документации, который вы цитировали, является точным, но может быть немного запутанным. Имейте в виду, что клиент может работать где угодно, даже внутри самого брокера. В случае базовых мостов и соединений кластера в брокере работает клиент, который использует connector
, чтобы определить, как подключиться к другому брокеру. Для чего стоит обновленная документация не имеет этой конкретной формулировки.
Что означает «определить, как»?
A connector
- это URL-адрес, который клиент должен подключить к брокеру. URL может просто включать хост и порт, или он может содержать множество деталей конфигурации для соединения (например, SSL config).
Всегда ли соединитель совпадает с принимающим ...?
Нет, не всегда . В случае кластера они будут одинаковыми (или очень близкими) по причинам, которые я уже обрисовал, но в случае моста они не будут одинаковыми.
Какая информациясоединитель инкапсулирует ..?
См. выше.
Почему автономный брокер имеет соединитель, например, при создании по умолчанию ./artemis create
?
Это не так. См. Выше.
Что мы должны написать в соединителе?
URL-адрес, необходимый для подключения.
Можете ли вы привести простой пример, когдаПриемник и разъем разные?
Как уже упоминалось ранее, мост является примером, где используются разные приемники и разъемы. ActiveMQ Artemis поставляется с примером «core-bridge» в каталоге examples/features/standard
, который демонстрирует различные акцепторы и соединители. В примере участвуют 2 разных брокера, один из которых имеет основной мост, настроенный для отправки сообщений другому брокеру. Вот broker.xml
с определенным мостом. Вы можете видеть прослушивающий приемник на localhost:61616
и разъем для localhost:61617
. Этот соединитель указывает на другого брокера, который прослушивает localhost:61617
.