geoserver集群部署

2023-05-16

geoserver集群部署

  • 环境准备
    • 系统准备
    • 软件准备
    • 插件准备
    • 配置jdk
    • 安装tomcat
    • 部署geoserver
    • 安装mq
    • geoserver配置jms
      • 修改tomcat 启动文件
      • 新建broker.xml放入cluster文件内容如下(三个节点均要新建,内容相同)
    • 集群配置

环境准备

系统准备

操作系统IPjdk服务版本角色
CentOS7192.168.144.7jdk1.8geoser2.20slave
CentOS7192.168.144.17jdk1.8geoser2.20slave
CentOS7192.168.144.128jdk1.8geoser2.20master

软件准备

  • jdk1.8
  • geoserver 2.20

插件准备

插件下载地址:https://build.geoserver.org/geoserver/2.20.x/community-2022-09-01/ 根据版本选择下载

  • geoserver-2.20-SNAPSHOT-activeMQ-broker-plugin.zip
  • geoserver-2.20-SNAPSHOT-jms-cluster-plugin.zip

配置jdk

 [root@localhost local]# tar -zxvf jdk-8u151-linux-x64.tar.gz 
[root@localhost local]#mv jdk1.8.0_151 jdk
[root@localhost local]#cat >>/etc/profile<< EOF
JAVA_HOME=/usr/local/jdk
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
 [root@localhost local]#source /etc/profile

安装tomcat

tar -zxvf apache-tomcat-9.0.56.tar.gz
mv apache-tomcat-9.0.56 tomcat

部署geoserver

上传geoserver的war包到tomcat的webappsmu目录。然后启动tomcat.war包回自动解压

在这里插入图片描述
访问ip:8080/geoserver

在这里插入图片描述
默认的账号密码为 admin geoserver
各节点都需要完成上述操作

安装mq

将geoserver-2.18-SNAPSHOT-activeMQ-broker-plugin.zip解压
将其中的war包上传到主节点的tomcat(其他tomcat也行)中
启动tomcat后自动解压,将/usr/local/tomcat/apache-tomcat-9.0.37/webapps/activemqBroker-2.18-SNAPSHOT/WEB-INF/classes目录下的  standalone-broker.properties和applicationContext.xml删除
重启tomcat
以上操作在一个tomcat中完成即可

geoserver配置jms

解压jms的zip包
将解压后的所有.jar包复制到tomcat中webapps/geoserver/WEB-INF/lib目录下
重启tomcat,等待geoserver启动成功
在/usr/local/tomcat/apache-tomcat-9.0.37/webapps/geoserver/data目录下生成cluster目录
其中包含以两个文件cluster.properties、embedded-broker.properties
如果需要修改geoserver的默认数据文件,需要修改以下文件

修改tomcat 启动文件

修改tomcat启动文件,指定数据文件位置
在这里插入图片描述

找到以下代码:

JAVA_OPTS=“$JAVA_OPTS $JSSE_OPTS"

修改为:

JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -DCLUSTER_CONFIG_DIR=/data1/geoserver/data/cluster/clusterConfig3"

在这里插入图片描述
各节点目录名称可不相同
重启tomcat 生成数据存储目录
每个节点都完成以上操作

新建broker.xml放入cluster文件内容如下(三个节点均要新建,内容相同)

在/data1/geoserver/data/cluster/clusterConfig3(此目录为上面脚本中指定的目录)目录下新建broker.xml文件内容如下(三个节点均要新建,内容相同)

vim broker.xml

复制下面内容到文件中,无须修改

<?xml version="1.0" encoding="UTF-8"?>
<!--DOCTYPE beans PUBLIC "-//ACTIVEMQ//DTD//EN" "http://activemq.org/dtd/activemq.dtd" -->

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jms="http://www.springframework.org/schema/jms" xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans
                       http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
                       http://www.springframework.org/schema/context
                       http://www.springframework.org/schema/context/spring-context.xsd
                       http://www.springframework.org/schema/jms
                       http://www.springframework.org/schema/jms/spring-jms.xsd
                       http://activemq.apache.org/schema/core
                       http://activemq.apache.org/schema/core/activemq-core.xsd">

<!-- Allows us to use system properties as variables in this configuration 
    file -->
<bean id="activemq.propertyPlaceholderConfigurer"
    class="org.geoserver.cluster.impl.utils.JMSPropertyPlaceholderConfigurer">
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
    <property name="searchSystemEnvironment" value="true" />
    <property name="ignoreUnresolvablePlaceholders" value="false" />
    <property name="ignoreResourceNotFound" value="true" />
    <constructor-arg index="0" type="Resource">
        <value>embedded-broker.properties</value>
    </constructor-arg>
    <constructor-arg index="1" type="JMSConfiguration"
        ref="JMSConfiguration" />

</bean>

<broker id="broker" persistent="${activemq.broker.persistent}"
    useJmx="${activemq.jmx.useJmx}" xmlns="http://activemq.apache.org/schema/core"
    dataDirectory="${activemq.base}" tmpDataDirectory="${activemq.base}/tmp"
    startAsync="false" start="false" brokerName="${instanceName}">

    <!-- The managementContext is used to configure how ActiveMQ is exposed 
        in JMX. By default, ActiveMQ uses the MBean server that is started by the 
        JVM. For more information, see: http://activemq.apache.org/jmx.html -->
    <managementContext>
        <managementContext createConnector="${activemq.jmx.createConnector}"
            connectorPort="${activemq.jmx.port}" connectorHost="${activemq.jmx.host}" />
    </managementContext>

    <!--destinationInterceptors>
        <virtualDestinationInterceptor>
            <virtualDestinations>
                <virtualTopic name=">" prefix="Consumer.*.VirtualTopic."
                    selectorAware="false" />
            </virtualDestinations>
        </virtualDestinationInterceptor>
    </destinationInterceptors-->

    <!-- Configure message persistence for the broker. The default persistence 
        mechanism is the KahaDB store (identified by the kahaDB tag). For more information, 
        see: http://activemq.apache.org/persistence.html -->
    <amq:persistenceAdapter>

        <kahaDB directory="${activemq.base}/kahadb"
            lockKeepAlivePeriod="0" />

        <!-- <jdbcPersistenceAdapter dataDirectory="activemq-data" dataSource="#postgres-ds" 
            lockKeepAlivePeriod="0" /> -->
    </amq:persistenceAdapter>


    <!-- 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 -->
    <systemUsage>
        <systemUsage>
            <memoryUsage>
                <memoryUsage limit="${activemq.broker.systemUsage.memoryUsage}" />
            </memoryUsage>
            <storeUsage>
                <storeUsage limit="${activemq.broker.systemUsage.storeUsage}" />
            </storeUsage>
            <tempUsage>
                <tempUsage limit="${activemq.broker.systemUsage.tempUsage}" />
            </tempUsage>
        </systemUsage>
    </systemUsage>

    <!-- The transport connectors expose ActiveMQ over a given protocol to 
        clients and other brokers. For more information, see: http://activemq.apache.org/configuring-transports.html -->
    <transportConnectors>
        <transportConnector name="openwire"
            uri="${activemq.transportConnectors.server.uri}" discoveryUri="${activemq.transportConnectors.server.discoveryURI}" />
    </transportConnectors>
    <networkConnectors xmlns="http://activemq.apache.org/schema/core">
        <networkConnector
            uri="${activemq.transportConnectors.server.discoveryURI}" />
    </networkConnectors>

    <!-- destroy the spring context on shutdown to stop jetty -->
    <shutdownHooks>
        <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" />
    </shutdownHooks>

</broker>

<!-- This xbean configuration file supports all the standard spring xml 
    configuration options -->

<!-- <bean id="postgres-ds" class="org.postgresql.ds.PGPoolingDataSource"> -->
<!-- <property name="serverName" value="localhost" /> -->
<!-- <property name="databaseName" value="activemq" /> -->
<!-- <property name="portNumber" value="5432" /> -->
<!-- <property name="user" value="postgres" /> -->
<!-- <property name="password" value="postgres" /> -->
<!-- <property name="dataSourceName" value="postgres" /> -->
<!-- <property name="initialConnections" value="1" /> -->
<!-- <property name="maxConnections" value="30" /> -->
<!-- </bean> -->

<!-- Oracle DataSource Sample Setup -->
<!-- <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:AMQDB"/> <property 
    name="username" value="scott"/> <property name="password" value="tiger"/> 
    <property name="poolPreparedStatements" value="true"/> </bean> -->

</beans>

集群配置

集群中只有一个节点是主节点,在这个节点新增数据,别的节点会根据activeMQ进行同步

修改各节点以下文件(文件路径为geoserver 数据目录下cluster目录中)

  • cluster.properties
  • embedded-broker.properties

修改cluster.properties配置文件 只改brokerURL,其他参数默认

	#Sun Sep 04 18:11:08 CST 2022
	toggleSlave=true
	connection=enabled
	topicName=VirtualTopic.geoserver
	brokerURL=tcp\://192.168.144.17\:61616 #AMQ地址 此文件各节点配置相同
	xbeanURL=./broker.xml
	durable=true
	toggleMaster=true
	embeddedBroker=enabled
	CLUSTER_CONFIG_DIR=/usr/local/tomcat/webapps/geoserver/data/cluster
	embeddedBrokerProperties=embedded-broker.properties
	connection.retry=10
	readOnly=disabled
	instanceName=9fb998e9-6244-4e94-a89c-3c21ecff9e27
	group=geoserver-cluster
	connection.maxwait=500

修改embedded-broker.properties 修改下面行

  • activemq.jmx.host= #本机ip
  • activemq.transportConnectors.server.uri=MQ链接器 本机ip:端口 (个节点端口不可一样)
  • activemq.transportConnectors.server.discoveryURI=#多播地址

在这里插入图片描述

重新启动各节点tomcat
访问geoserver 登录后可以看到cluster信息
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

geoserver集群部署 的相关文章

  • k8s 集群部署traefik

    k8s 集群部署traefik k8s 集群部署traefik 环境准备 下载traefik helm方式安装traefik master边缘节点 执行安装 查看安装结果 安装traefik dashboard dashboard安装和查看
  • k8s集群部署Java(springboot)项目

    1 java项目打成jar包 1 1 在IDEA开发工具中使用maven工具将开发完成的SpringBoot项目达成jar包 我自己的项目生成的jar为 xff1a demojenkins jar 1 2 将生成jar包上传到装有docke
  • geoserver集群

    软件准备 geoservertomcat 插件 下载地址 xff1a https build geoserver org geoserver activeMQ broker plugin zipjms cluster plugin zip
  • java jms clust,Geoserver 的 JMS Cluster modules(集群数据同步)

    Geoserver 的 JMS Cluster modules 准备工作 下载对应jms模块依赖jar包 xff1a geoserver jms cluster zip xff0c 官网未提供下载链接 xff0c 这里提供一个链接地址 找到
  • geoserver jms集群部署

    1 集群节点运行架构图 官网集群介绍 xff1a https docs geoserver org latest en user community jms cluster index html 节点之间通过jms消息通信 xff0c A节
  • geoserver配合openlayers框架加载地图

    geoserver地图服务器如果搭建成功 xff0c 那么会有很多图层示例 这些图层可以用作练手示例 在实际工作中 xff0c 可能需要我们自己设计地图 xff0c 自己发布 xff0c 然后使用 这里以上一篇最后发布的中国地图为例 xff
  • CentOs(Linux) 中 使用Prometheus 监控 k8s集群(集群部署)

    CentOs Linux 中 使用Prometheus 监控 k8s集群 xff08 集群部署 xff09 一 master node节点环境部署 所有node节点下载监控所需镜像 span class token comment dock
  • K8S集群部署

    环境准备 由于k8s 集群比较吃配置 xff0c 使用 按量计费 来进行学习 xff0c 三台 4核8G 的费用大概再 1 6元 小时 三台云服务器 配置 xff1a 2核2G 三台服务器内网互通 xff08 内网可以互相访问 VPC xf
  • udig下载、安装及汉化,生成geoserver图层样式sld文件

    uDig是一款开源免费的桌面地理信息系统框架软件 uDig汉化版主要采用RCP技术构建 内置的多专业的水文工具 拥有复杂专业的分析能力 既可以作为独立程序运行 还可以作为插件使用 uDig是一个 open source EPL and BS
  • hadoop-3.0.0完整版HA部署

    一 环境准备 Linux7 2 hadoop 3 0 0 tar gz JDK1 8 二 下载源 hadoop3 0 0下载地址 https archive apache org dist hadoop common zookeeper 3
  • GeoServer系列-geojson保存mongodb乱码问题

    前言 基于前一篇文章GeoServer系列 通过mongodb发布geojson数据 业务上可将常见的地理文件统一为geojson保存到mongodb 方便统一维护和发布geoserver 这一篇将解决mongodb中属性中文乱码问题 1
  • GeoServer发布地图服务并在OpenLayers中显示:shp的WMS服务和GeoTIFF的WTMS服务

    GeoServer发布的地图服务结构如下 必须创建一个工作区 该工作区下可以存放多组无关数据 也就是说 工作区的作用就类似于一个文件夹 仅仅用于分类 在工作区下添加数据存储 数据存储即一组相关数据 通常 一个地区的地图可能是单个文件构成 也
  • GeoServer 不会写入我的 PostgreSQL 可更新视图

    继从这个先前的问题我使用的是 PostgreSQL 8 4 并且在可更新视图方面遇到问题 我有一个看法 CREATE VIEW filedata view AS SELECT num id ST TRANSFORM the geom 900
  • 我在实施传单抽奖时做错了什么。在这个具体示例中如何使用 WFST?

    我是地理信息开发领域的新手 我按照下面的管道架构流程来实现基于 GIS 的应用程序问题 PostGIS GeoServer 传单 我已经设置了传单客户端应用程序 它将图块组成地图 我还使用一些传单插件 如绘图 缩放 以便用户可以选择在地图上
  • 矢量图块缓冲区

    我在使用 Geoserver 提供的矢量切片设置 Openlayers 地图时遇到问题 线条沿着瓷砖的边缘拧在一起 看起来线条是先被剪裁 然后再设计样式 而不是相反 这使得宽线看起来很难看 更改 LOL 客户端中的渲染缓冲区不会产生任何影响
  • C# 中的 cURL 和用户身份验证

    我想在 C 中执行以下 cURL 请求 curl u admin geoserver v XPOST H Content type text xml d
  • 使用 OpenLayers 从 GeoServer Javascript 编辑 WFS

    看完后非常好有关如何使用 OpenLayers 编辑 WFS 的教程 http wordpress dbauszus rhcloud com wfs t with openlayers 3 5 我尝试过复制它 但是使用来自 Geoserve
  • 臭名昭著的 java.sql.SQLException: 找不到合适的驱动程序

    我正在尝试将支持数据库的 JSP 添加到现有的 Tomcat 5 5 应用程序 GeoServer 2 0 0 如果有帮助的话 应用程序本身与 Postgres 通信得很好 所以我知道数据库已启动 用户可以访问它 所有这些都是好东西 我想要
  • Ubuntu+Nginx+Tomcat部署Geoserver的问题

    我在运行 Ubuntu 18 04 nginx 和 tomcat10 的远程服务器中部署 Geoserver 时遇到问题 过去 我再次成功部署了 Geoserver 但现在 不知何故 一切都松了 我尝试清理所有 tomcat 实例 服务和文
  • Sencha Touch、OpenLayers、GeoServer:使用 Android 2.2 的设备上的编码错误

    我使用创建了一个小测试页面煎茶触摸 开放层我正在从一个接收 WMS WFS 数据地理服务器 我已将 HTML 页面上的编码设置为 UTF 8 我使用以下语句从 GeoServer 中提取一些 WFS 数据 var post new Open

随机推荐

  • DMA控制器

    DMA控制器 DMA 简介 直接存储器访问 DMA 用于在外设与存储器之间以及存储器与存储器之间提供高速数据传 输 可以在无需任何 CPU 操作的情况下通过 DMA 快速移动数据 这样节省的 CPU 资源可 供其它操作使用 DMA 控制器基
  • STM32 软硬件调试

    调试IO口占用 JTMS SWDIO PA13 JTCK SWCLK PA14 JTDI PA15 JTDO PB3 JNTRST PB4 STM32 软硬件调试 硬件调试 硬件调试通常是通过JTAT或者SWD调试下载器来进行调试 首先需要
  • Linux 音频驱动

    Linux 音频驱动 硬件介绍 WM8960与IMX6ULL之间有两个通信接口 xff1a I2C和I2S 其中I2C用于配置WM8960 I2S用于音频数据传输 修改设备树文件 编写I2C子节点设备树 codec span class t
  • RK3399android源码编译ninja: build stopped: subcommand failed报错原因

    ninja build stopped subcommand failed 编译RK3399 android源码的时候报错 xff1a ninja build stopped subcommand failed 发现网上很多解决方法都不行
  • android7.1固定usb转串口设备节点名称

    使能ch340驱动 修改源码路径下mklinux sh添加make menuconfig图形配置一下 使能ch340驱动 配置环境变量 单独编译内核文件 打包镜像烧写文件 ubuntu固定USB串口设备端口号 参考链接 xff1a http
  • RK3568-GPIO

    参考链接 https wenku baidu com view 3313c154f142336c1eb91a37f111f18583d00c33 html 接口号 GPIOn xy n 32 x 1 8 y 其中对应关系 A 1 B 2 C
  • Python使用Cython实例,速度提升150倍以上

    文章目录 1 什么是 Cython xff1f 2 用 Cython 编写1个函数1 xff09 安装 cython2 xff09 先编写1个纯python函数3 xff09 使用cython重写该函数4 编译 pyx 文件 3 运行cyt
  • RK3568-显示

    RK3568 显示 分辨率 720p xff1a 1280x720 1080p xff1a 1920x1080 2K xff1a 2560x1440 4K xff1a 3840x2160 接口 需要修改设备树 MIPI xff1a LCD
  • RK3568-SPI

    RK3568 SPI SPI xff08 serial peripheral interface xff09 支持以下特性 默认采用摩托罗拉 SPI 协议 支持 8 位和 16 位 软件可编程时钟频率和传输速率高达 50MHz 支持 SPI
  • Linux-固定USB转串口名称

    参考链接 https www cnblogs com WCH SoftGroup p 16516383 html udev简介 udev 是一个用户空间系统 xff0c 它使操作系统管理员能够为事件注册用户空间处理程序 udev 守护程序接
  • gstreamer

    gst discoverer 1 0 xff1a 查看媒体文件的编码 xff0c 帧率等信息 gst inspect 1 0 xff1a 找出可用的GStreamer元素及其功能 gst launch 1 0 xff1a 从命令行构建和运行
  • usb相关

    USB CDC类 Communication Device Class USB的CDC类是USB通信设备类 Communication Device Class 的简称 CDC类是USB组织定义的一类专门给各种通信设备 电信通信设备和中速网
  • 视频编解码

    色彩格式 参考链接 xff1a https blog csdn net luanfenlian0992 article details 124992465 rgb yuv 编码格式 参考链接 xff1a https blog csdn ne
  • kali linux 安装Docker

    kali linux 安装docker zhaomeng 64 kali sudo apt get install docker docker compose 启动docker service docker start 报错如下 zhaom
  • Ubuntu20.04修改环境变量失误导致开机循环——解决方法以及如何保存profile

    gedit etc profile配置Ubuntu环境变量时出现失误导致开机时输入密码后重复开机无法进入图画界面 解决方法 xff1a ctrl 43 alt 43 F1 F6 xff0c 我的是ctrl 43 alt 43 F2进入界面
  • Ubuntu中代理设置

    当我们没有梯子的时候 xff0c 我们不需要任何代理 xff0c 直接在网络配置中选择禁止或者自动 xff0c 火狐浏览器也选择自动就好 xff0c 当我们使用梯子以后 xff0c 我们得看梯子的代理端口 xff0c 让电脑代理选择手动 x
  • CentOS8 图形界面和命令行切换

    1 查看目前默认的启动默认 systemctl get default 命令行模式 multi user target 图形界面模式 graphical target 2 设置为图形界面模式 systemctl set default gr
  • Java实现微信(主、子商户模式)及支付宝支付

    一 业务需求 实现APP微信 支付宝支付 xff0c 后端需要做生成预支付单 xff0c 响应支付结果 xff1b 微信商户采用子商户模式 二 参考官方文档 微信普通商户 xff1a https pay weixin qq com wiki
  • Java判断整数是否为回文数

    回文数 xff0c 是指一个数的正序 xff08 从左到右 xff09 与其倒序 xff08 从右到左 xff09 相等的数 核心思想是把这个整数倒过来 xff0c 再与这个数进行比较 xff0c 若相等 xff0c 则此数为回文数 xff
  • geoserver集群部署

    geoserver集群部署 环境准备系统准备软件准备插件准备配置jdk安装tomcat部署geoserver安装mqgeoserver配置jms修改tomcat 启动文件新建broker xml放入cluster文件内容如下 三个节点均要新