JGroups, Terracotta & Hazelcast

Попытка обернуть голову вокруг этих трех проектов, и все они, похоже, обрабатывают несколько разные проблемы, возникающие при попытке кластера. Но вся документация для них написана для разработчиков, которые уже "знают", и для новичков, подобных мне, мне сложно понять.

  • Каковы конкретные проблемы, которые каждый из них пытается решить, и как эти проблемы отличаются друг от друга?
  • Как кластеризация с каждым из них отличается от кластеризации серверов приложений (например, встроенные возможности кластеризации JBoss или GlassFish)?
  • Являются ли проблемы, которые эти рамки решают достаточно разным, чтобы гарантировать их использование в одном проекте? Или они конкурируют друг с другом и, следовательно, имеют разные решения по той же/подобной проблеме?

Заранее благодарим за понимание этих любопытных, но неуловимых фреймворков!

Ответы

Ответ 1

jgroups - это больше о распределении задач и управлении кластерами, в то время как hazelcast/terracotta - более распределенные кэши (сетки данных) - при сопоставлении всех функциональных возможностей существует определенная совпадение - вам нужно выяснить, какая функциональность важнее и, возможно, проще реализовать.

hazelcast позволяет выполнять кластеризацию с помощью адресной или многоадресной рассылки на основе tcp. Он поддерживает карты, мультиплексоры, списки, очереди, темы - для резервного копирования на основе диска вам необходимо реализовать интерфейсы загрузки/хранения.

С помощью EhCache вы можете использовать репликацию JGroups, JMS или RMI для кешей.

Короче говоря, если вы ищете распределенный кеш данных /grid, hazelcast или ehcache будут инструментами для поиска - если вы ищете распределение задач с использованием библиотеки и не обеспокоены существующими кэшами сетки данных, JGroups будут работать для вас.