Совместное использование объектов в нескольких контейнерах - PullRequest
0 голосов
/ 08 января 2019

Мы разрабатываем приложение с начальной загрузкой, которое развертывается в OpenShift 3. Приложение должно быть масштабируемым как минимум до двух модулей. Но мы используем внутренние кэши и другие «глобальные» данные (некоторые списки, некоторые карты…), которые должны быть одинаковыми (то есть общими) для всех модулей.

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

а)

|---- Application ----|
|                     |
|   |-------------|   |
|   | Pod 1  | *  |   |
|   |----------^--|   |
|              |      |
|   |----------v--|   |
|   | Pod 2  | *  |   |
|   |----------^--|   |
|              |      |  
|   |----------v--|   |
|   | Pod n  | *  |   |
|   |-------------|   |
|                     |
|----------------------
* "embedded cache service"

б)

|---- Application ----|
|                     |
|   |-------------|   |
|   | Pod 1  |    |-----\
|   |-------------|   |  \
|            |        |   \
|   |-------------|   |    \  |-----------------------|
|   | Pod 2  |    |-----------| Cache Service/Cluster |
|   |-------------|   |     / |-----------------------|
|            |        |    /
|   |-------------|   |   /
|   | Pod n  |    |------/
|   |-------------|   |
|                     |
|----------------------

Как правило, если бы мы использовали memcached или redis, я думаю, что б) было бы единственным решением. Но как дела с Hazlecast?

1 Ответ

0 голосов
/ 08 января 2019

С Hazelcast вы можете использовать a & b.

  • Для сценария a, предполагая, что вы используете k8s в OpenShift, вы можете использовать плагин Hazelcast Kubernetes discovery, чтобы модули, развернутые в том же кластере k8s, обнаружили себя и сформировали кластер: https://github.com/hazelcast/hazelcast-kubernetes
  • Для сценария b Hazelcast также имеет образ OpenShift, для которого требуется подписка Enterprise: https://github.com/hazelcast/hazelcast-openshift. Если вам нужна версия с открытым исходным кодом, вы можете использовать Hazelcast Helm Chart для отдельного развертывания кластера данных: https://github.com/helm/charts/tree/master/stable/hazelcast
...