Знакомимся с Data Grid

Вышла 3-яя статья, посвященная Data Grid-решению от JBoss - фреймворку Infinispan.

Статья 1 - "Introducing the Infinispan Data Grid Platform".
Статья 2 - "Infinispan for the Power-user: Remoting".
Статья 3 - "Infinispan for the Power-user: Cache Modes".

Если в двух словах - это это аналог JBoss Cache, только призванный работать - в распределенной, масштабируемой среде. В памяти виртуальных Java-машин, установленных на многих серверах - хранятся Maps,  куда вы можете помещать пары ключ/значение, без обращения к СУБД (набирающее популярность движение NoSQL, см. подробности ниже, но в общем случае - тут как и кэш к СУБД).

Все это поддерживает, конечно же, многопоточность, а так же JTA.

А различные стратегии использования - зададут приоритеты к такому виртуальному хранилищу. Цитата - "between performance and scalability, and durability of data". - Между скоростью такого виртуального хранилища (облако), масштабируемостью его и его надежностью. Например вы выставляете один из важных параметров этого хранилища (numOwners), чтобы реплицирование ваших значений в этом облаке - было равно строго 2.

В плане надежности указанный параметр, равный 2, означает, что каждая пара ключ/значение - будут гарантированно располагаться в облаке - на двух серверах (но и не более). Т.е. если один сервер накроется, то в облаке гарантированно будут ВСЕ копии всех значений. Облако создаст новые дубликаты и расположит их на других машинах. Просто ваше виртуальное хранилище немного "ужмется", потеряет в объеме, с утратой одного из серверов в нем.

В плане размера данного виртуально хранилища это означает, что при увеличении числа серверов - линейно растет и емкость данного хранилища - 200 JVM на серверах такого хранилища, имеющих по 1GB памяти, и при указанном параметре реплицирования, равным 2 - дают вам 100GB-ое виртуальное пространство хранения!

А если у вас еще много неструктурированных данных - то вы можете постоянно держать в памяти этих машин - все состояние вашего приложения.

Так же не обязательно, чтобы клиентами такого облако - были JEE-приложения. Потому что у данной технологии есть REST API, при котором совершенно не важно - кто отправит к вашему облаку - HTTP-запрос. Настраивается это следующим образом - добавляются war-файлы к вашим серверам приложений (может быть Tomcat), перезапускаем серверы приложений - и вы получаете REST-серверы, "прослушивающие" запросы и обеспечивающие данную функциональность, REST API.

Так же есть всякие виды оптимизаций, гибкие настройки, а так же веб-GUI, показывающий состояние ваших серверов в этом облаке (это тут они подключили другой чудесный фреймворк от JBoss - JOPR, который дает эту функциональность - мониторинг High Available, а так же остановку/запуск ваших отдельных серверов, которые, кстати - вы можете объединять в группы, например по принципу расположения в различных дата-центрах - там есть хорошие фичи, вроде плановой остановки серверов на тех. обслуживание - вы в этом GUI парой кликов мышки - отключаете сервера, именно на этот режим, и потом можете заниматься тех. обслуживанием, если же сервера сами выключились/пропала связь с ними - у вас "замигают все лампочки" :))) ).

В общем вещи крутые и довольно легко настраиваемые, а уж по использованию - "проще не бывает".

0 коммент.:

Отправить комментарий