JGroups UDP для членства, но TCP для обмена сообщениями?

Мы создаем прототип системы обмена сообщениями узлов кластера на основе jgroups, которая заменит систему, основанную на JDBC. В моей организации есть много людей, которые обеспокоены добавлением большего количества многоадресного трафика в уже загруженную сеть, поэтому я получаю некоторые возражения против решения UDP/многоадресной рассылки.

Я знаю, что JGroups можно настроить только для TCP, но я не хочу принудительно выполнять шаг настройки в приложении, где каждый узел должен быть заранее идентифицирован в файле конфигурации.

Тогда я хотел бы посмотреть, сможем ли мы получить гибрид, работающий здесь, где многоадресная рассылка используется ТОЛЬКО для операций членства в группе (обнаружение, пульсация, обнаружение сбоев), но обмен сообщениями полностью основан на TCP.

Однако я не нахожу примеров этого в своих поисках и поэтому задаюсь вопросом, можно ли настроить JGroups таким образом.

Может это и какой-нибудь пример конфигов показывающий как?

Спасибо!


person Scott    schedule 11.12.2013    source источник


Ответы (1)


Что касается обнаружения, вы можете сделать это с помощью MPING - он использует многоадресную рассылку IP для обнаружения новых узлов, хотя они позже отвечают через основной транспорт (TCP в вашем случае).

Что касается FD/FD_ALL, я не думаю, что это возможно, протоколы рассчитаны на использование основного транспорта. Вам придется написать свой собственный протокол FD, это не должно быть так сложно.

Однако, если вы можете использовать UDP, вы, вероятно, должны это сделать. Вам решать, будете ли вы отправлять сообщение одному узлу, нескольким узлам или всем сразу — для одного пункта назначения будет одноадресный UDP, для нескольких пунктов назначения (если вы установите опцию anycast) будет использоваться несколько одноадресных передач и только для всех узлов. UDP уменьшит нагрузку на сеть за счет многоадресной рассылки. Это действительно зависит от приложения, UDP просто разрешает многоадресную рассылку.

person Radim Vansa    schedule 09.02.2014