Как поделиться кэшем Hazelcast с мультивоенными Tomcats - PullRequest
0 голосов
/ 24 мая 2018

У нас есть несколько Tomcats, каждый с несколькими развернутыми файлами .war (= приложение Spring Boot).Теперь нам нужно распределенное кэширование между app1 на tomcat1 и app1 на tomcat2.Важно, чтобы app2 на tomcat1 (и app2 на tomcat2) не могли видеть кэш Hazelcast других развернутых приложений.

Следующая ситуация показывает эту ситуацию:

         Tomcat 1                               Tomcat 2
         +-----------------------------------+  +-----------------------------------+
         |                                   |  |                                   |
         |    app1.war       app2.war        |  |    app1.war       app2.war        |
         |    +----------+   +----------+    |  |    +----------+   +----------+    |
         |    |          |   |          |    |  |    |          |   |          |    |
         |    |          |   |          |    |  |    |          |   |          |    |
         |    |          |   |          |    |  |    |          |   |          |    |
         |    |          |   |          |    |  |    |          |   |          |    |
         |    |          |   |          |    |  |    |          |   |          |    |
         |    |          |   |          |    |  |    |          |   |          |    |
         |    |          |   |          |    |  |    |          |   |          |    |
         |    |          |   |          |    |  |    |          |   |          |    |
         |    +----+-----+   +----+-----+    |  |    +----+-----+   +-----+----+    |
         |         |              |          |  |         ^               ^         |
         +-----------------------------------+  +-----------------------------------+
                   |              |                       |               |
                   |              |                       |               |
                   |              |                       |               |
                   |              |                       |               |
                   +--------------------------------------+               |
Shared cache via Hazelcast        |                                       |
                                  |                                       |
                                  +---------------------------------------+
                                  Shared cache via Hazelcast

Возможно ли этос Hazelcast?И если да, то как?Прямо сейчас я нахожу решение, говорящее об общих веб-сессиях через Hazelcast.Но это не кажется мне решением здесь, или я ошибаюсь?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Если ваши приложения должны быть строго изолированы, то вам, вероятно, нужно использовать разные группы кластеров .Группы кластеров позволяют различным кластерам сосуществовать в одной сети, при этом они совершенно недоступны друг для друга (при условии правильной конфигурации).

Если, однако, вам просто необходимо, чтобы данные приложения были разделены, то вы можетепросто убедитесь, что app1 экземпляры используют кэши с именами, которые не конфликтуют с app2 именами кэша.Это простейшая реализация.

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

0 голосов
/ 24 мая 2018

Да, это возможно.

Вы можете настроить имя кэша.

Приложение app1 использует кэш с именем app1.Приложение app2 использует кэш с именем app2.Если вы настроите его правильно, то они не будут видеть данные друг друга.

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

...