srping2.0+升级到spring3.0+遇到的问题,es部分记录一下

ops/2024/12/22 12:04:59/

最近公司项目,在做版本升级,首先srping2.0+升级到spring3.0+,目前无漏洞版本是springBoot3.2.12+springClould2023.0.3,升级完spring,紧接着升级es,原来我们使用的es客户端版本是7.9.3,升级到无漏洞版本是7.17.23

        <elasticsearch.version>7.17.23</elasticsearch.version><spring-data-elasticsearch.version>4.1.15</spring-data-elasticsearch.version><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-elasticsearch</artifactId><version>${spring-data-elasticsearch.version}</version><exclusions><exclusion><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId></exclusion><exclusion><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId></exclusion><exclusion><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId></exclusion></exclusions></dependency><!-- Elasticsearch --><dependency><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId><version>${elasticsearch.version}</version></dependency><dependency><!-- required by elasticsearch --><groupId>org.elasticsearch.plugin</groupId><artifactId>transport-netty4-client</artifactId><version>${elasticsearch.version}</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>${elasticsearch.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency>

不过es客户端和服务端,存在匹配度,不要盲目的升级客户端版本,我们开发环境服务端使用的是7.9.2版本,客户端使用的是7.9.3版本,可以完美兼容,
我升级客户端到7.17.23版本后,es中的有些类的包名改了,要修改,其余也没什么,项目启动后可以链接到es服务,执行语句包括:查询,插入,聚合都没有问题,然后就发版上线了,结果坑就在这等着我呢
线上升级后,我第一时间登陆系统,做升级验证,结果一个报错就蹦出来了,淦!!!

遇到报错不怕,解决一下就行了,报错信息如图:

加粗样式
大致意思就是构建风格要是oss,这个oss是啥,还真没了解过,查了一下资料

Elasticsearch 服务端版本分为 OSS(Open Source Software)和默认版本(商业版)的主要原因是提供不同的许可模式和功能集。以下是详细的解释:

  1. 许可模式和功能集
    OSS 版本
    许可证:采用 Apache 2.0 许可证,完全开源。
    功能:包含 Elasticsearch 的核心功能,如索引、搜索、聚合等。
    插件:只能使用开源插件。
    支持:主要依赖社区支持。
    默认版本(商业版)
    许可证:采用 Elastic 许可证,包含商业特性。
    功能:除了 OSS 版本的核心功能外,还包括一些商业特性,如安全特性(X-Pack)、监控、警报、机器学习等。
    插件:可以使用开源插件和商业插件。
    支持:提供官方技术支持和维护。
  2. 构建风味(Build Flavor)
    构建风味是指在构建 Elasticsearch 时选择的不同配置,以满足不同的需求。常见的构建风味包括:
    oss:开源版本,不包含任何商业特性。
    default:默认版本,包含所有功能,包括商业特性。
  3. 为什么需要区分构建风味
    许可证合规性:
    开源项目和商业项目对许可证有严格的要求。OSS 版本确保项目遵守开源许可证,而默认版本则允许使用商业特性。
    功能选择:
    不同的项目和组织可能有不同的需求。OSS 版本适合那些只需要基本功能且希望完全开源的项目,而默认版本适合需要更多商业特性的企业。
    支持和服务:
    商业版提供官方支持和维护,适合需要稳定性和专业支持的企业。开源版则依赖社区支持。
  4. 如何选择合适的构建风味
    评估需求:
    确定项目是否需要商业特性,如安全、监控、机器学习等。
    考虑许可证:
    确保项目的许可证要求与所选版本的许可证一致。
    预算:
    商业版通常需要购买许可证,而 OSS 版本是免费的。

我问了一下AI,
AI告诉我,可以在 pom.xml 中指定 oss 构建风味的依赖:

<dependencies><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>${elasticsearch.version}</version><classifier>oss</classifier></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-elasticsearch</artifactId><version>${spring-data-elasticsearch.version}</version></dependency>
</dependencies>

那怎么查看服务端的es是oss?还是默认版本
在Kibana,执行一下这个命令
GET /


![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/bc83f676bd8a46b091345cc4e0e135ec.png
正式环境用的oss版本,但是我在pom里没有指定构建风格,我初步认为是用没有指定构建风格的原因,所有我改了一下

		<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>${elasticsearch.version}</version><classifier>oss</classifier><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency>

结果我刷新maven,根本拉不到依赖,

在这里插入图片描述
这…
搞得我实在没办法了,只能回退版本到7.9.3,虽然没找到解决完美得解决办法,不过也知道了一些东西,那位大佬如果知道在不回退版本得情况下,可以解决这个问题,请指导一下!感谢!感谢!


http://www.ppmy.cn/ops/144014.html

相关文章

题海拾贝:力扣 86.分隔链表

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 1、题…

医疗挂号的数字化转型:SSM 联合 Vue 的系统设计与实现探索

3系统分析 3.1可行性分析 通过对本医院预约挂号系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本医院预约挂号系统采用SSM框架&#xff0c;JAVA作为开发语…

Pytorch | 从零构建ResNet对CIFAR10进行分类

Pytorch | 从零构建ResNet对CIFAR10进行分类 CIFAR10数据集ResNet核心思想网络结构创新点优点应用 ResNet结构代码详解结构代码代码详解BasicBlock 类ResNet 类ResNet18、ResNet34、ResNet50、ResNet101、ResNet152函数 训练过程和测试结果代码汇总resnet.pytrain.pytest.py 前…

ios的safari下载文件 文件名乱码

当使用nginx代理文件并下载文件时&#xff0c;返回的协议头Content-Disposition中filename%E9%9B%AA%E5%B1%B1.jpg中文内容会是URL编码的形式&#xff0c;当客户端在safari浏览器下载下载文件时&#xff0c;文件名不会转换&#xff08;URL解码&#xff09;为正常的中文。 应该…

wepack的各个版本差异?

‌Webpack的版本问题主要体现在不同版本之间的配置差异和兼容性问题。‌ 不同版本之间的配置差异 ‌Webpack 3.x与4.x的区别‌&#xff1a;在Webpack 3.0之后&#xff0c;配置entry和output路径不再支持相对路径&#xff0c;只能使用__dirname拼接成的绝对路径‌。‌Webpack …

UE5 Lyra项目源码分析-角色配置说明

在上一篇里&#xff0c;我们研究了关卡的配置如何在GameMode实现加载的&#xff0c;并稍微理解了Lyra是如何实现的模块化&#xff0c;由于模块化太彻底&#xff0c;所以理解起来有些难&#xff0c;在这一篇里&#xff0c;我们看一下配置里面比较想了解的一块。就是角色是如何配…

ArrayList与LinkedList、Vector的区别

一、ArrayList 和 LinkedList区别&#xff1a; &#xff08;1&#xff09;两者都是线程不安全&#xff0c;都实现了Collection接口。 &#xff08;2&#xff09;数据结构&#xff1a;ArrayList是基于动态数组的数据结构&#xff0c;LinkedList是基于双向链表的数据结构。 &am…

一款轻量级的开源笔记服务软件

大家好&#xff0c;我是兔兔&#xff0c;一位写作爱好者&#xff0c;今天分享的内容是&#xff0c;如何搭建一个开源的、隐私优先的轻量级笔记服务应用。 不知道大家是否有这样的需求&#xff1a; 1、自己想搭建一个个人的学习笔记文档&#xff0c;既要自己看也可以单独分享给…