geoserver的分布式部署


geoserver的分布式部署采用基於JMS的集群部署,由geoserver(Master)、geroserver(Slave)、The MOM(消息相關中間件ActiveMQ)組成。ActiveMQ通過gs-jms-geoserver工程與geoserver集成在一起,省去了ActiveMQ的部署和配置。

  在gs-web-app工程的pom.xml文件中增加community下的jms-cluster(gs-jms-commons、gs-jms-geoserver)模塊依賴后,在geoserver主頁上即可看到Cluster的相關菜單(Cluster Configuration),用於分布式部署配置:

 

 配置頁面中的brokerURL用於設定代理Url,可采用默認設置(VM+實例名稱),當設置為failover(tcp://localhost:61616,tcp://localhost:61617)時,啟動該進程時會卡死,設置為tcp://localhost:61616或者tcp://localhost:61617可行。activemq.transportConnectors.server.uri用於設定broker的偵聽端口

 

 

 

多台服務器部署geoserver實例用於集群部署時,相互之間進行網絡連接時,會通過主機名進行tcp連接,如tcp://GIS:61616,會報錯WARN [network.DiscoveryNetworkConnector] - Could not start network bridge between: vm://instance9090?async=false&network=true and: tcp://GIS:61616 due to: java.net.UnknownHostException: GIS,需在/etc/hosts文件中增加GIS的主機IP標識。

 

 多台機器上部署時,配置transportConnectors.server.uri時不能使用localhost,應將tcp://localhost:61616改為tcp://192.168.15.11:61616(別的機器在遠程連接時會直接連接tcp://localhost:61616,因而報錯),報錯內容如下:

ERROR [multicast.MulticastDiscoveryAgent] - Failed to advertise our service: default.ActiveMQ-4.alive.%localhost%tcp://192.168.15.97:61617
java.io.IOException: Operation not permitted (sendto failed)
    at java.net.PlainDatagramSocketImpl.send(Native Method)
    at java.net.DatagramSocket.send(DatagramSocket.java:693)
    at org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent.doAdvertizeSelf(MulticastDiscoveryAgent.java:419)
    at org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent.doTimeKeepingServices(MulticastDiscoveryAgent.java:403)
    at org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent.run(MulticastDiscoveryAgent.java:365)
    at java.lang.Thread.run(Thread.java:745)

 

applicationContext.xml文件中的部分屬性可在GeoServerApplication.properties中指定。如:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM