2013-09-25 4 views
13

Я хочу, чтобы создать распределенные приложения на виртуальной машине Java, которая имеет ряд узлов, и нужна библиотека, которая позволяет мне:Альтернативы JGroups

  • Управления членства кластера/сетке, то есть я хочу получать уведомления о Оставление/присоединиться
  • Управления сообщений между членами кластера

Я нашел два решения:

  • JGroups - это работает, но это выглядит даты и широко не используется
  • Akka - он основан Scala и его кластерный модуль не похож на зрелый

Существуют ли какие-либо другие библиотеки, которые могут сделать то же самое?

ответ

27

JGroups существует с 1998 года и поэтому очень стабильный, не датированный вообще! Он активно развивается (я ведущий разработчик).

Он используется множеством приложений/систем, если вы используете Google, вы найдете много ссылок. Только на этой неделе телекоммуникационная компания, использующая его, побила рекорд для крупнейшего кластера, построенного с помощью JGroups с кластером узлов 1115!

Кластеризация JBoss (Wildfield) (Infinispan) также использует JGroups. Я предлагаю написать небольшой прототип и посмотреть, как он работает. Если вы задаете вопросы в списке рассылки JGroups, люди там очень полезны ...

Я не могу комментировать Akka, поскольку я не использовал ее, но мое отвращение к Scala не давало бы мне от нее силы в любом случае ...

+0

Я сравнил количество звезд на GitHub и Акку имеет гораздо больше из них, чем JGroups. Количество книг и презентаций на акке также больше. Это то, что я имею в виду более широко используемым. У вас есть проекты JBoss, которые его используют, и исходные версии кластера Akka также использовали его. Я реализовал простой очерченный хэш-файл с JGroups, и он работал достаточно хорошо, однако я хочу выбрать лучшее доступное решение для своего приложения. –

+1

Хотя Akka реализована с использованием Scala, она предлагает эквивалентные API для Java и Scala, а это значит, что вам даже не нужно знать, что такое Scala для успешного использования Akka. –

+0

JGroups довольно медленно, нам пришлось отказаться от него. ознакомьтесь с этим: http://code.google.com/p/fast-cast/, проще и быстрее –

3

Если вы идете по количеству звезд на GitHub, тогда другие проекты (Cassandra, Riak, Hadoop и т. д.) также выиграют над JGroups ... :-) Я бы прототип на JGroups и Aka, а затем выберите решение, которое лучше всего подходит для вас (перформанс, функциональность, простота и т. Д.). Cheers,

5

Мои 2 цента. Я использовал JGroups в своем проекте для достижения аналогичных требований. Env - около 60 узлов, что немного мало, но у нас есть тонна активности между узлами (около 1MM сообщений pd). JGroups были великолепны, потому что его сетевая конфигурация действительно гибкая и довольно стабильная. Есть несколько вещей, которые вы могли бы усвоить, когда настраиваете JGroups для разделения кластера на разные центры обработки данных/локальные сети и даже на VLAN, поскольку в JGroups не так много активности пользователей, в отличие от других более новых доступных параметров Теперь. Если у вас есть время, чтобы поиграть с ним и иметь сопоставимую версию QA/Staging для вашей продукции, я думаю, что JGroups - очень хороший вариант.

6

Есть ли другие библиотеки, которые могут делать то же самое?

Apache Zookeeper. Никогда не использовал его сам, но слышал об этом.

Лично я использовал JGroups в течение нескольких лет. Вначале это было нестабильно - мой кластер из 10 кластеров из 10 узлов был разбит несколько раз в неделю (разделенный на подкластеры), но позже Bela Ban улучшил библиотеку, он работал хорошо.

Мои 5 центов "JGroups против Akka":

  • Akka кластера конфигурации проще, не так "глубоко", как JGroups' один
  • Akka кластера использует неблокируемому ввода/вывода для связи (в настоящее время поверх Netty), JGroups всегда использовали блокировку сокетов TCP (это может иметь решающее значение для больших кластеров, но есть также UDP в JGroups ... Но UDP не всегда применим ...)
  • Akka Cluster обеспечивает более высокий уровень такие как кластерные маршрутизаторы & распространяются PubSub, которые хорошо интегрированы с Актерами (конечно, если вам нравится Akka & Актеры)
  • Akka кластера охватывает большинство сценариев использования, но не все: смотреть в наше обсуждение некоторое время назад: https://groups.google.com/forum/#!topic/akka-dev/WUsi6qfV5BU

 Смежные вопросы

  • Нет связанных вопросов^_^