教程
根据 https://geoserver.geo-solutions.it/educational/en/clustering/index.html 来安装配置
教程中的GeoServer Active Clustering扩展下载地址过期了,最新在 https://build.geoserver.org/geoserver/
教程里面还是有挺多含糊不清的地方(也可能是我理解能力太差了...)
需求
现拥有A服务器和B服务器,上面有两个完全一样的geoserver连发布的数据也一模一样,用来做负载均衡用的,前置一个nginx均衡访问它俩
每次有新发布图层,需要先把数据拷贝到A服务器的数据目录,再发布图层。然后再在B服务器上做完全一样的操作。
能不能实现在A服务器发布图层,B服务器也自动同步呢,可以的,根据文章开头的教程来即可。
怎么做
根据教程把 A服务器作为主(Master)服务器,B服务器作为从站(Slave)。
- 切勿在 主服务器上重新加载GEOSERVER目录,每个主实例都不应调用目录重新加载,因为这会将所有资源,样式等的创建传播到所有连接的从服务器。
- 切勿使用 纯从站更改配置这将使特定从站的配置与其他从站不同步。
使用的架构
单主机-具有专用数据目录和外部MOM的多个从属群集(主从都有自己的数据目录)
值得一提的是,应通过外部机制在不同实例之间同步要提供的数据(也就是要自己去想办法同步主从两台服务器的数据,一般放在/data_dir/data)
我的geoserver版本
- AB两个服务器都要装geoserver-2.17-SNAPSHOT-jms-cluster-plugin.zip
- A服务器要装geoserver-2.16-SNAPSHOT-activeMQ-broker-plugin.zip(2.17的包用着发现有问题缺jar包),放在tomcat里面即可 //tomcat的webapps/下的war包会被自动解压再自动启动为服务
A服务器配置(主)
/usr/share/apache-tomcat-9.0.41/webapps/activemqBroker-2.16-SNAPSHOT/WEB-INF/classes/standalone-broker.properties里修改为如下0.0.0.0以允许B服务器用IP访问到它
activemq.transportConnectors.server.uri=tcp://0.0.0.0:61666?maximumConnections=1000&wireFormat.maxFrameSize=104857600&jms.useAsyncSend=true&transport.daemon=true