Я начал разрабатывать распределенное приложение, и у нас большая дилемма!Нам нужна коммуникационная библиотека, простая в использовании и обладающая следующими функциями:
- надежная связь
- группы / каналы
- одноадресная рассылка
- многоадресная рассылка
- автообнаружение
- безопасность
- поддерживается несколькими языками программирования
- поддерживается несколькими операционными системами
- поддержка географического распределения является плюсом
Несколько слов об этом приложении
Основная идея этого распределенного проекта состоит в том, чтобы иметь внешний интерфейс, серверную часть (приложение обработки) и сотни агентов, которые будут собирать данные из некоторых центров обработки данных.Связь между агентами и бэкэндом должна быть максимально простой, у нас должна быть возможность отправить конфигурацию или получить данные в режиме реального времени от агентов.Требуется минимальная безопасность транспорта между агентами и бэкэндом.Также у нас должна быть возможность добавлять / удалять новые узлы в backend кластере live.Если количество узлов внутреннего кластера изменяется, агенты должны перераспределить свою нагрузку (вероятно, это должно быть сделано путем фильтрации через сервер).Обычно сообщения (между агентами и бэкэндом) не превышают 1500 байт, но время от времени мы должны иметь возможность отправлять большие пакеты (необходимо хорошее управление фрагментацией).
То, что мы нашли до сих пор:
- jGroups
- Спред
- openpgm
- zeromq
- Hazelcast
Если у вас есть опыт разработки приложений кластеризации, пожалуйста, дайте мне знать, какая из вышеперечисленных платформ подходит для моего проекта?Также, если вы знаете другие бесплатные библиотеки, которые подходят для моего проекта и не перечислены выше, пожалуйста, дайте мне знать!