Связь между 2 узлами в кластере - PullRequest
2 голосов
/ 13 февраля 2011

Я пытаюсь выяснить, как это будет работать:

  1. клиент-серверная связь через NIO / BIO
  2. сервер-серверная связь (репликация, членство и т. д.) через JGroups (репликация данных может быть проблемой?)

Что вы предлагаете, плюсы / минусы использования такой архитектуры, зачем использовать jgroups,какие-нибудь альтернативы?

Должен ли я пойти с собственным NIO или использовать некоторые библиотеки, такие как Mina или Netty?

Обновление

  1. Нет REST, этоне веб-сервер.Я строю динамо как распределенную базу данных.Я думаю,
  2. activeMQ похож на JMS, где у меня будет единственная точка отказа.JGroups решает эту проблему, верно?

1 Ответ

1 голос
/ 13 февраля 2011

Интересно, почему вы хотите реализовать двоичный протокол для связи клиент-сервер? Мой совет - использовать REST или WebServices. Он имеет огромные преимущества по сравнению с проприетарным двоичным протоколом.

О связи сервер-сервер ... Существует огромное количество вариантов, и мне интересно, почему вы выбрали JGroups. Вы можете остановиться на этом? Я посоветую вам воспользоваться некоторыми решениями для обмена сообщениями, такими как JMS. Существует множество доступных реализаций, таких как ActiveMQ . Это приятно отделит серверы друг от друга.

Если вам необходимо поддерживать общую информацию о конфигурации, именовании, распределенной синхронизации между серверами, вы можете посмотреть Apache ZooKeeper проект.

Если ваши серверы развернуты в инстансах Amazon EC2, то я думаю, что лучшим решением будет использование служб SQS и / или SNS для взаимодействия сервер-сервер.

Вы можете использовать Терракотовую для репликации состояния вашего сервера (все же я рекомендую вам сделать ваши серверы как можно более не имеющими состояния).

Но очень сложно посоветовать что-то более конкретное, потому что вы не описали ни свою систему, ни требования к ней . Я думаю, это было бы очень полезно!

...