从零开始学GeoServer源码十四(GeoServer Cloud微服务版本初体验)

快速导航

从零开始学GeoServer源码一(开篇)
从零开始学GeoServer源码二(搭建开发环境)
从零开始学GeoServer源码三(断点应该打在哪?)
从零开始学GeoServer源码四(自定义插件或拓展数据源)
从零开始学GeoServer源码五(切片原理及自定义插件支持wms、wmts、tms)
从零开始学GeoServer源码六(如何打包发布?)
从零开始学GeoServer源码七(如何注册服务并发布3dtiles和cesium的地形terrain?)
从零开始学GeoServer源码八(内存溢出?Out of Memory Error ?)
从零开始学GeoServer源码九(如何集成Cesium以实现预览3dtiles和terrain服务?)
从零开始学GeoServer源码十(如何修改菜单项以整合我们的功能?)
从零开始学GeoServer源码十一(如何解决No Multipart-config for Servlet错误)
从零开始学GeoServer源码十二(GeoServer中的切片规则)
从零开始学GeoServer源码十三(GeoServer生成的矢量切片缺失问题)
从零开始学GeoServer源码十四(GeoServer Cloud微服务版本初体验)

点我去AIGIS公众号查看本文

前言

  在之前的十三篇博文中,我们已经系统的学习了GeoServer的一系列知识,包括环境搭建、断点查找、原理解释、数据源拓展、Cesium集成、打包发布等等。但是我们还有一个重要的知识点还未涉及,那就是GeoServer的集群。传统GeoServer的集群(基于nginxJMS)本质上还是单体架构的集群,无法根据并发量进行自适应,因此我们就引出了GeoServer的微服务版本------------GeoServer Cloud
  之前就有很多同学问我有没有微服务的版本,其实我也一直想将单体架构的GeoServer改成微服务版本的,也是在无意中看到这个GeoServer Cloud项目,实在太棒了,这就是我想要的。想想也是,既然我们能想得到,那OSGeo的那帮大佬们肯定也能想得到,那么话不多说,咱们直接开整。

1.GeoServer Cloud 介绍

  GeoServer CloudGitHub的一个开源项目,项目地址为https://github.com/geoserver/geoserver-cloud。我们首先把GeoServer Cloud的架构图放上来。
在这里插入图片描述
  从架构图中我们就能看出来,这是标准的微服务架构,WMS、WMTS、WFS、GWC、WebUI等等功能都被分离出来了,每个都是一个独立的应用,还有独立的网关、服务发现、日志、配置、外部数据源、缓存等等。那么我们就产生了两个疑问:

1.GeoServer Cloud是一个独立的项目吗?
答:不是,OSGeo官方说GeoServer CloudGeoServer的兄弟项目,和GeoServer是有关联的

2.GeoServer Cloud的功能和GeoServer比起来咋样?还一样吗?
答:两者几乎一摸一样,我们可以看下GeoServer Cloud跑起来后的界面
在这里插入图片描述

2.环境准备

  首先我们要声明一下,GeoServer Cloud项目是需要运行在Docker里的,因此需要DockerDocker-Compose的环境。又因为我们后面要对源码进行修改,因此我们在此将JDK的版本和Maven的版本以及IDEA的版本一并列出。
1.JDK ≥ 21
2.IDEA ≥ 2022
3.Docker ≥ 19.03.3
4.Docker-Compose ≥ 1.26.2
5.Maven ≥ 3.6.3

3.Win10 Win11安装Docker、JDK、IDEA

  直接在Docker官网https://www.docker.com/products/docker-desktop/下载最新版本的Docker Desktop,我下载的是Docker Desktop4.28.0,其中包含的Docker的版本是25.0.3,Docker-Compose的版本是2.24.6。注意不要混淆DockerDocker Desktop。如果是低版本的Docker Desktop,那就需要自己手动安装Docker-Compose了。
  确认DockerDocker-Compose的版本。

win11默认没有HyperV,装上了Docker以后启动时一直卡在启动界面转圈,需要自己手动装上HyperV,再启动Docker就可以了。注意配置Docker的国内镜像源,要不然很慢。

在这里插入图片描述

  JDK21IDEA2022以及破解方法,百度网盘自取

链接:https://pan.baidu.com/s/1f_72hQ9sIH-vPf1mf8gLjw
提取码:3ztx

4.安装GeoServer Cloud

  参照官方文档https://geoserver.org/geoserver-cloud/中的Quick Start部分。第一步我们需要通过wget命令获取到任意一个docker-compose.yml

4.1 获取docker-compose.yml

在这里插入图片描述
  如果电脑没有wget工具,那就直接在浏览器访问一下后面链接,新建一个docker-compose.yml将内容复制进去即可。

4.2 拉取镜像

  cmd进入到docker-compose.yml所在的路径,输入以下命令开始拉取

docker-compose pull

在这里插入图片描述

4.3 启动

  还是cmd进入到docker-compose.yml所在的路径,输入以下命令启动

docker-compose --compatibility up -d

在这里插入图片描述

4.4 访问

  如果一切顺利的话,那么访问以下两个地址即可:
Eureka服务注册页面:http://localhost:8761/
GeoServer Cloud WebUI界面:http://localhost:8090/web
在这里插入图片描述
在这里插入图片描述

5.注意事项

5.1 JDK冲突问题

  如果你的Eureka服务注册页面正常,GeoServer Cloud WebUI界面报错java.lang.IllegalStateException: Could not locate PropertySource and the fail fast property is set, failing: None of labels [] found,检查你的JDK的环境变量JAVA_HOME配置的对不对,有可能还用的1.8的路径。

5.2 GeoServer Cloud Config 版本问题

  注意docker-compose.yml中配置的版本,这个坑很隐蔽,我在这里卡了半天,最后还是问了ChatGPT才知道的,按理说一个开源项目不应该出现这种低级错误。注意看,这里config指向的版本是1.7.1
在这里插入图片描述
  而当我们去访问一下这个地址https://github.com/geoserver/geoserver-cloud-config.git,切换到tag发现只有1.7.0,因此我们需要将docker-compose.yml中的所有1.7.1全部替换为1.7.0。而这个错误会导致和5.2节一样的错误。
在这里插入图片描述

5.3 GeoServer Cloud WebUI 404问题

  如果你的Eureka服务注册页面正常,GeoServer Cloud WebUI界面报错404,那你就需要打开之前下载的docker-compose.yml,看看gateway的配置
在这里插入图片描述
  注意这个GEOSERVER_BASE_PATH,如果没有这个选项,那么GeoServer Cloud WebUI的访问路径就是http://localhost:8090/web,但是现在新版本加了这个选项,那么现在访问地址就变为了http://localhost:8090/geoserver/cloud/web
在这里插入图片描述

6.总结

  本期是我们GeoServer Cloud项目的第一次体验,并没有涉及代码修改,后面会逐渐开始更新,鉴于国内很多人没有试过这个版本,相关的博文也比较少,所以一定会遇到很多问题,因此一定要耐心,遇到问题要善于搜索和思考,如果找不到答案,也可以问问ChatGPT,作者在踩坑的过程中也是使用了ChatGPT很快定位了问题,希望各位同学一定要学会使用新技术来增加自己的效率,回见~

更多精彩内容见公众号AIGIS
  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIGIS.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值