iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >分享SpringBoot3.x微服务升级历程
  • 135
分享到

分享SpringBoot3.x微服务升级历程

SpringBoot3.x微服务升级SpringBoot微服务 2022-12-16 15:12:30 135人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录前言历程前言 Spring Boot 3.0.0 GA版已经发布,好多人也开始尝试升级,有人测试升级后,启动速度确实快了不少,如下为网络截图,于是我也按捺不住的想尝试下。 历程

前言

Spring Boot 3.0.0 GA版已经发布,好多人也开始尝试升级,有人测试升级后,启动速度确实快了不少,如下为网络截图,于是我也按捺不住的想尝试下。

在这里插入图片描述

历程

首先就是要把spring Boot、spring cloud 相关的依赖升一下
Spring Boot:3.0.0
Spring Cloud:2022.0.0-RC2

统一依赖版本管理:

<dependencyManagement>
<dependencies>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-dependencies</artifactId>
		<version>2022.0.0-RC2</version>
		<type>pom</type>
		<scope>import</scope>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.0.0</version>
		<type>pom</type>
		<scope>import</scope>
	</dependency>
</dependencies>
</dependencyManagement>

现在还不能下载Spring 相关依赖包,需要加入Spring 仓库。
在你的Maven仓库中加入如下配置,我是加在了pom.xml

<repository>
	<id>netflix-candidates</id>
	<name>Netflix Candidates</name>
	<url>https://artifactory-oss.prod.netflix.net/artifactory/maven-oss-candidates</url>
	<snapshots>
		<enabled>false</enabled>
	</snapshots>
</repository>
<repository>
	<id>spring-milestones</id>
	<name>Spring Milestones</name>
	<url>Https://repo.spring.io/milestone</url>
	<snapshots>
		<enabled>false</enabled>
	</snapshots>
</repository>

另外Spring Boot 3.X 开始使用了Java 17,将java版本调整到>17,为了不必要的麻烦,就选17
idea选择17,并在pom.xml文件中指定版本:

<java.version>17</java.version>

到这里我们的common 包是能正常编译了。

接下来是服务的配置
同样调整Spring Boot、Spring Cloud、Java的版本,同common的配置。
碰到如下的几个问题:

找不到hystrix的依赖问题
升级后找不到hystrix的版本,官网也找不到,这里我显式指定了版本

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
	<version>2.2.9.RELEASE</version>
</dependency>

RabbitMQ问题
相关的配置丢失,比如如下图,这边进行适当调整或者直接注释解决。

在这里插入图片描述

在这里插入图片描述

TypeVariableImpl丢失问题
原来服务中引入了sun.reflect.generics.reflectiveObjects.TypeVariableImpl,现在17中已经被隐藏无法直接使用,这边为了能够先启动,暂时注释,后面再想办法。

Log 异常问题
由于之前我们项目中历史原因,既有用log4j,也有用logback,升级后已经不行,提示冲突,报错如下

Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.helpers.NOPLoggerFactory loaded from file:/Users/chenjujun/.m2/repository/org/slf4j/slf4j-api/1.7.0/slf4j-api-1.7.0.jar). If you are using WEBLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.slf4j.helpers.NOPLoggerFactory
    at org.springframework.util.Assert.instanceCheckFailed(Assert.java:713)
    at org.springframework.util.Assert.isInstanceOf(Assert.java:632)

意思是,要么移除Logback,要么解决slf4j-api的冲突依赖,这里两种方式都尝试了,slf4j-api依赖的地方太多,后面移除了Logback。

要排除依赖一个好办法:使用Maven Helper插件

在这里插入图片描述

logback依赖:

<dependency>
	<groupId>ch.qos.logback</groupId>
	<artifactId>logback-classic</artifactId>
	<version>1.2.8</version>
</dependency>

Apollo问题
使用Apollo会提示该错误,需要在启动中加入--add-opens java.base/java.lang=ALL-UNNAMED

Caused by: com.ctrip.framework.apollo.exceptions.ApolloConfigException: Unable to load instance for com.ctrip.framework.apollo.spring.config.ConfigPropertySourceFactory!
    at com.ctrip.framework.apollo.spring.util.SpringInjector.getInstance(SpringInjector.java:40)
    at com.ctrip.framework.apollo.spring.boot.ApolloApplicationContextInitializer.<init>(ApolloApplicationContextInitializer.java:66)
    ... 16 more
Caused by: com.ctrip.framework.apollo.exceptions.ApolloConfigException: Unable to initialize Apollo Spring Injector!
    at com.ctrip.framework.apollo.spring.util.SpringInjector.getInjector(SpringInjector.java:24)
    at com.ctrip.framework.apollo.spring.util.SpringInjector.getInstance(SpringInjector.java:37)
    ... 17 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFORMatError accessible: module java.base does not "opens java.lang" to unnamed module @16612a51
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
    at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
    at com.Google.inject.internal.cglib.core.$ReflectUtils$1.run(ReflectUtils.java:52)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.google.inject.internal.cglib.core.$ReflectUtils.<clinit>(ReflectUtils.java:42)

通过上述配置调整后,能编译成功,但是无法启动,控制没有任何日志,初步怀疑还是log依赖问题,由于时间关系,没有再继续,问题留到以后再弄,后面有新进展,会持续更新该文。

到此这篇关于Spring Boot 3.x微服务升级经历的文章就介绍到这了,更多相关Spring Boot 3.x微服务升级内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 分享SpringBoot3.x微服务升级历程

本文链接: https://www.lsjlt.com/news/175101.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 分享SpringBoot3.x微服务升级历程
    目录前言历程前言 Spring Boot 3.0.0 GA版已经发布,好多人也开始尝试升级,有人测试升级后,启动速度确实快了不少,如下为网络截图,于是我也按捺不住的想尝试下。 历程...
    99+
    2022-12-16
    Spring Boot 3.x微服务升级 Spring Boot 微服务
  • Linux 服务器中 PHP 版本从 5.x 升级到 7.x
    如果把 Linux 服务器的 PHP 版本升级呢?比如目前版本是 PHP 5.6.40,升级到7.4 当前最最新版本 PHP 7.4.30。 查看当前 PHP 版本  php -v 卸载已安装的 PHP yum remove p...
    99+
    2023-09-27
    php 版本升级 PHP 5.6 PHP 7.4
  • 如何升级node版本?详细教程分享
    如何升级node版本?下面本篇文章给大家总结分享详细的升级教程,介绍一下Window、Mac或Linux系统下升级node版本的方法,希望对大家有所帮助!Window 系统window系统升级node只能到node官网下载window安装包...
    99+
    2023-05-14
    node Node.js 升级
  • 升级iOS17后可以降级吗?iOS17退回iOS16方法教程分享
    iOS 17已上线几天,从网上用户的反馈和媒体机构的报告来看,iOS17系统对旧机型来说并不友好,除了电池续航下降以外,占用大量储存空间,BUG也不少。 苹果于 9 月 7 日发布了 iOS 16.6.1 版本,如果升级iOS17后发现不适...
    99+
    2023-10-22
    cocoa macos objective-c
  • PHP微服务架构实践分享
    PHP 微服务架构实践分享 随着互联网技术的飞速发展,微服务架构作为一种架构设计理念受到越来越多开发者的青睐。作为一种分布式系统的设计风格,微服务架构通过将一个应用划分为多个小服务来提...
    99+
    2024-04-02
  • 分享提升Go语言微服务开发效率的实用技巧
    提高效率的Go语言微服务开发实用技巧分享 随着互联网的发展,微服务架构在近年来变得越来越流行。作为一种灵活性高、可扩展性强的架构模式,微服务可以帮助开发人员更好地组织和管理复杂的软件系统。而Go语言作为一门简...
    99+
    2024-01-23
    Go语言 微服务 提高效率
  • 阿里云共享服务器升级方案设置
    随着互联网技术的发展,越来越多的企业和个人选择使用云服务。阿里云作为中国最大的云计算服务提供商,为用户提供了一系列的云计算服务,包括共享服务器。然而,随着时间的推移,用户的需求也在不断变化,因此阿里云提供了升级方案设置,让用户可以根据自己的...
    99+
    2023-11-13
    阿里 服务器 方案
  • 亚马逊远程服务器升级教程
    1. 确定服务器类型和规格 在进行服务器升级之前,首先需要确定当前服务器的类型和规格。可以通过登录 AWS 控制台,进入 EC2 实例页面查看当前服务器的配置信息。在确定当前服务器的类型和规格之后,可以根据实际需求选择更高配置的服务器进行...
    99+
    2023-10-27
    亚马逊 服务器 教程
  • 微软已关闭WP8.1手机升级Win10 Mobile的服务
    微软最新公布了Windows 10创意者更新所支持的手机型号,仅仅只有13款设备可以升级。 这意味着大量此前的Windows Phone 8.1手机用户无法享受到Windows 10 Mobile所带来的新功能体验。 对...
    99+
    2023-05-22
    WP8.1 Win10 Mobile
  • PHP 微服务容器化运维实践分享
    如何在 kubernetes 中部署和监控 php 微服务?dockerfile 优化:遵循多阶段构建、使用 alpine 镜像、编译扩展。编排和部署:使用 helm 部署,通过 ing...
    99+
    2024-05-08
    php 微服务 mysql docker composer php7 容器化应用
  • 亚马逊服务器ecs升级教程
    检查更新:首先,确保您的服务器已经升级到最新版本。您可以使用AWS客户端或控制台命令来检查是否已更新。 重启服务器:重启服务器可以帮助您避免因更新引起的错误。 检查配置:查看您的服务器配置文件,以确保已正确更新。您可以在“系统与安全”选项...
    99+
    2023-10-27
    亚马逊 服务器 教程
  • 亚马逊云服务器升级教程
    下载AWS基础云计算客户端(AP: App Engine)并安装。您可以从AWS官网(https://aws.amazon.com/cn/apps/default.aspx)上下载AP。 登录到您的AWS账户。在您的浏览器地址栏中输入您的...
    99+
    2023-10-27
    亚马逊 服务器 教程
  • uniapp(HBuilder X)实现微信小程序转发好友和分享朋友圈(携带多个参数)
    1.转发好友 onShareAppMessage() {    let that=this;    var url="/pages/xxxx/xxxxid=123&t...
    99+
    2023-09-05
    微信小程序 uni-app 小程序 Powered by 金山文档
  • 华为云服务器系统升级教程
    1.备份数据 在进行系统升级之前,务必备份重要数据,以免数据丢失。可以使用云硬盘快照或者其他备份工具进行备份。 2.选择系统版本 在华为云服务器控制台中,选择需要升级的服务器,进入服务器详情页,点击“更多”按钮,选择“升级系统”选项。在弹...
    99+
    2023-10-26
    华为 系统升级 服务器
  • 云服务器怎么升级系统教程
    一、安装云服务器软件 在进行云服务器升级之前,需要先将系统进行升级。下面是一种简单的安装步骤: 在终端中运行“云服务器管理”应用程序,如下图所示。 输入系统配置文件,并点击“开始”按钮。 在“控制台”中输入“system”,点击“确定”...
    99+
    2023-10-28
    服务器 教程 系统
  • 阿里云服务器升级硬盘教程
    阿里云服务器硬盘升级可能是许多云计算用户经常遇到的问题,以下是一些可能的升级步骤和技巧: 确认需要升级的内容:了解升级的目的和内容,以确定升级的顺序和时间。 制定计划:确定升级所需的数据和系统,并制定详细的升级计划。 准备工作:在制定计...
    99+
    2023-10-26
    阿里 硬盘 服务器
  • 微服务架构中如何实现服务的版本回滚和升级?
    随着互联网技术的快速发展,微服务架构逐渐成为了互联网企业中技术部门的主流选择。相对于单体架构,微服务架构可以更加灵活、高效地进行系统开发和运维。在微服务架构中,每个服务都是一个相对独立的单元,可以独立部署、升级和回滚。因此,在微服务架构中,...
    99+
    2023-05-16
    微服务架构 服务版本回滚 服务升级
  • 亚马逊远程服务器升级要多久
    亚马逊远程服务器升级的时间取决于多个因素,包括服务器的规模、升级的类型以及网络连接速度等。一般来说,升级过程可能需要几分钟到几个小时不等。在升级期间,服务器可能会暂停服务,因此建议在升级之前通知用户并安排好备用计划。此外,为了确保升级的成功...
    99+
    2023-10-27
    亚马逊 要多久 服务器
  • 亚马逊云服务器升级系统教程
    1. 确认当前系统版本 在进行系统升级之前,我们需要先确认当前系统版本。可以通过以下命令查看: cat /etc/issue 该命令会输出当前系统的版本信息,例如: Ubuntu 18.04.5 LTS n l 2. 更新软件包列...
    99+
    2023-10-27
    亚马逊 服务器 教程
  • 亚马逊远程服务器升级多少钱
    亚马逊远程服务器的升级费用取决于多个因素,包括所需的计算资源、存储容量、网络带宽等。此外,不同的亚马逊 Web 服务(AWS)产品和服务也有不同的价格。因此,无法给出一个具体的数字。 如果您想了解更多关于亚马逊远程服务器升级的费用信息,建...
    99+
    2023-10-27
    亚马逊 多少钱 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作