1 集群节点运行架构图
官网集群介绍:
https://docs.geoserver.org/latest/en/user/community/jms-cluster/index.html
节点之间通过jms消息通信,A节点增删数据(workspace、store、layers)等,其余节点数据同步。jms服务通过activeMQ消息中间件,实现集群节点之间数据互通。官网架构图直观地解释了集群运行方式,如下图:

2 依赖环境(所有依赖环境对应geoserver版本)
3 集群部署步骤
博主使用节点数据共享目录方式集群部署,需要设置geoserver数据路径。有兴趣者采用geoserver节点间不同数据路径方式测试。
3.1 tomcat部署activeMQ,配置MQ配置文件
配置文件路径:
activemqBroker\WEB-INF\classes
配置standalone-broker.properties:

配置applicationContext.xml
https://docs.geoserver.org/latest/en/user/community/jms-cluster/activemq/activemqBroker.html

启动activeMQ服务
3.2 解压jms plugins jar包到节点geoserver lib文件夹下面
3.3 多节点geoserver部署——tomcat
多tomcat部署节点geoserver,tomcat跨域设置,保证geoserver服务数据可正常增删改查
tomcat跨域设置代码:
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.4 配置节点geoserver jvm启动参数,配置CLUSTER_CONFIG_DIR参数,catalina.bat文件
注意:不可使用同一cluster目录
# geoserver slave1
set "CLUSTER_CONFIG_DIR=D:\soft\tomcat\geoserver-cluster\data\8090"
# geoserver slave2
set "CLUSTER_CONFIG_DIR=D:\soft\tomcat\geoserver-cluster\data\8089"
3.5 配置节点geoserver共享数据目录
<context-param>
<param-name>GEOSERVER_DATA_DIR</param-name>
<param-value>D:\soft\tomcat\geoserver-cluster\data</param-value>
</context-param>
3.6 启动tomcat, 在配置目录下找到cluster.properties文件(配置连接activeMQ)
先启动tomcat,生成cluster.properties文件,配置完成,重启tomcat

3.7 nginx负载均衡配置
upstream mygeoserver {
ip_hash;
server 192.168.112.128:8080;
server 192.168.112.130:8080;
}
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://mygeoserver;
}
}
3.8 集群运行流程图

4 效果验证
4.1 效果测试
在geoserver 8089新增workspace,geoserver 8090自动同步,效果图如下:


5 其他用户集群部署方式参照
https://blog.csdn.net/ylfmsn/article/details/104753869
6 原生activeMQ-broker集群配置(经测试,geoserver官方封装activeMQ插件与原生activeMQ方案都可使用,二选一即可)
6.1 原生activeMQ-broker集群配置文件activemq.xml
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
6.2 启动方式
# activemq路径
# E:\soft\tomcat\geoserver-cluster\apache-activemq-5.15.11-bin\apache-activemq-5.15.11
# start方式
bin/activemq start xbean:conf/activemq-stomp.xml
# console方式
bin/activemq console
# create broker方式
bin/activemq create /path/to/brokers/mybroker
6.3 console启动日志效果图(windows方式)

6.4 监控平台界面(默认用户名密码均为admin)
监控两个节点的geoserver效果图(instanceName)

6.5 剩余步骤参照3.2、3.3、3.4、3.5、3.6、3.7
7 说明
博主windows平台下集群搭建,linux下相似,需要更改数据路径。欢迎探讨。
新增官网activeMQ集群方式,博友资料共享。