Проблемы с кластеризацией с Geoserver - PullRequest
0 голосов
/ 06 марта 2020

Я использую плагин сообщества JMS для кластеризации GeoServer. Я хочу создать кластер картографических серверов, в основном с горизонтальным масштабированием.

Я сгенерировал образ и запустил свой геосервер с расширениями JMS в контейнере. На данный момент я тестирую только с docker -композицией, но моя цель - использовать ее в кластере Kubernetes.

Мне потребовался день, более или менее, чтобы это "работать" в Конфигурация мульти мастер / слэйв. Фактически все узлы являются как главными, так и подчиненными.

У меня есть следующие проблемы:

  • Частичное дублирование данных. Данные копируются с одного узла на другой, но не всегда. В частности, кажется, что у рабочих пространств больше проблем (?)

  • , если я загружаю новый узел, то он начинается пустым, ни одна из инициализаций не выполняется. Я ожидал бы, что новый узел инициализирует все свои данные другим узлом?

  • Если я использую веб-интерфейс, каждый раз, когда я вхожу в один узел, он выводит меня из строя других узлов!

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

Любая помощь будет ДЕЙСТВИТЕЛЬНО оценена!

Вот свойства файла кластера шаблонов для узлов:

CLUSTER_CONFIG_DIR=/opt/geoserver/data_dir/cluster
instanceName=$INSTANCENAME
readOnly=disabled
durable=true
brokerURL=
embeddedBroker=enabled
connection.retry=10
toggleMaster=true
xbeanURL=./broker.xml
embeddedBrokerProperties=embedded-broker.properties
topicName=VirtualTopic.geoserver
connection=enabled
toggleSlave=true
connection.maxwait=500
group=geoserver-cluster

И внедренный-брокер.properties

## JMX settings (can be overridden by env vars)
## For more information, see: http://activemq.apache.org/jmx.html
# enable/disable broker jmx
activemq.jmx.useJmx=false
# set the JMX connector port
activemq.jmx.port=1098
# set the JMX connector host
activemq.jmx.host=$DOCKERIP
# enable the JMX connector
activemq.jmx.createConnector=false

## broker settings
# set the base path of the temporary broker dir
# this is also used as persistence base dir
#activemq.base=./

## configuring the embedded broker
# connects the server via native I/O socket to the local network broadcast using an automatic assigned port
# maximumConnections and wireFormat.maxFrameSize are added to avoid ddos attacks
activemq.transportConnectors.server.uri=tcp://$DOCKERIP:0?maximumConnections=1000&wireFormat.maxFrameSize=104857600&jms.useAsyncSend=true&transport.daemon=true&trace=true

## the broker performs discovery using the following protocol:
# multicast on default network
activemq.transportConnectors.server.discoveryURI=multicast://default

## persistence settings and system usage
## The systemUsage controls the maximum amount of space the broker will
## use before slowing down producers.
## For more information, see: http://activemq.apache.org/producer-flow-control.html
# enable/disable persistence
activemq.broker.persistent=true
# heap memory usage
activemq.broker.systemUsage.memoryUsage=128 mb
# disk space memory usage
activemq.broker.systemUsage.storeUsage=1 gb
# temp disk space memory usage
activemq.broker.systemUsage.tempUsage=128 mb

My docker compose (основные элементы)

version: "3.2"

services:
  geoserver:
      image: geocento/geoserver
      ports:
        - "8650:8080"
      restart: on-failure
      env_file:
        - geoserver.env
      networks:
        geoserver2:
  geoserver2:
      image: geocento/geoserver
      ports:
        - "8651:8080"
      restart: on-failure
      env_file:
        - geoserver.env
      networks:
        geoserver2:
etc...
networks:
  geoserver2:
    ipam:
      driver: default
      config:
        - subnet: 10.10.0.0/24
...