首页 > 其他分享 >Spring Boot 单体应用升级 Spring Cloud 微服务

Spring Boot 单体应用升级 Spring Cloud 微服务

时间:2024-01-18 17:24:57浏览次数:31  
标签:Spring Boot Cloud spring RELEASE 2.2 cloud

作者:刘军

Spring Cloud 是在 Spring Boot 之上构建的一套微服务生态体系,包括服务发现、配置中心、限流降级、分布式事务、异步消息等,因此通过增加依赖、注解等简单的四步即可完成 Spring Boot 应用到 Spring Cloud 升级。

*Spring Cloud Alibaba (SCA) 官网正式上线:sca.aliyun.com

Spring Boot 应用升级为 Spring Cloud

以下是应用升级 Spring Cloud 的完整步骤。

第一步:添加 Spring Cloud 依赖

首先,为应用添加 Spring Cloud 与 Spring Cloud Alibaba 依赖。注意根据当前应用 Spring Boot 版本选择合适的 Spring Cloud 版本,具体参见版本映射表 [ 1]

<properties>
    <spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version>
    <spring-cloud.version>2022.0.0</spring-cloud.version>
</properties>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>${spring-cloud-alibaba.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <!-- Nacos 服务发现 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <!-- 服务发现:OpenFeign服务调用 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
  <!-- 服务发现:OpenFeign服务调用 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-loadbalancer</artifactId>
    </dependency>
</dependencies>

以上我们添加了服务注册发现、OpenFeign 等依赖。

第二步:添加配置

在应用 application.yml 或者 application.properties 文件中增加以下配置项,设置应用名、注册中心地址。

application.yml:

spring:
  application:
    #项目名称必填,在注册中心唯一
    #最好和之前域名规范、kubernetes service名等保持一致(会作为调用与负载均衡依据)
    name: service-provider
  cloud: 
    nacos: 
      discovery: #启用 spring cloud nacos discovery
        server-addr: 127.0.0.1:8848

application.properties:

#项目名称必填,在注册中心唯一
#最好和之前域名规范、kubernetes service名等保持一致(会作为调用与负载均衡依据)
spring.application.name=service-provider
 #启用 spring cloud nacos discovery
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

第三步:启动类增加注解

启动类增加 EnableDiscoveryClient EnableFeignClients 注解,启动服务地址自动注册与发现。

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }
}

第四步:调整服务调用方式

标签:Spring,Boot,Cloud,spring,RELEASE,2.2,cloud
From: https://www.cnblogs.com/alisystemsoftware/p/17972944

相关文章

  • spring--Bean的作用域及应用场景
    这六种SpringBean的作用域适用于不同的应用场景:Singleton:在SpringIoC容器中仅存在一个Bean实例,Bean以单例方式存在。无论我们是否在配置文件中显式定义,所有的SpringBean都默认为singleton作用域。应用场景:当你需要全局共享一个实例时,例如服务类、工具类或者配置类。示......
  • springboot配置分页插件pageHelper和数据库方言的几种方式
    方式一:启动类配置分页插件(Application.java)1/**2*pageHelper分页插件3*/4@Bean5publicPageHelperByMyselfpageHelper(){6PageHelperByMyselfpageHelper=newPageHelperByMyself();7Propertiesproperties=newPr......
  • Spring ResourceLoader 总结
    ResourceLoader总结Spring将采用和ApplicationContext相同的策略来访问资源。也就是说,如果ApplicationContext是FileSystemXmlApplicationContext,res就是FileSystemResource实例;如果ApplicationContext是ClassPathXmlApplicationContext,res就是ClassPathResource实例当Spring应......
  • SpringSecurity-认证流程源码级详解
    自定义用户认证逻辑处理用户信息获取逻辑:UserDetailsService处理用户校验逻辑:UserDetails处理密码加密解密:PasswordEncoder认证处理流程以表单认证为例:从发起认证请求到认证过滤器,接着认证成功后,响应从认证过滤器返回的整个过程。SpringSecurity做了什么,设计到了哪些类?他......
  • Spring 如何解决循环依赖
    目录前言什么是循环依赖?Spring创建Bean主要流程实例化Bean填充Bean属性调用Bean初始化方法BeanPostProcessor接口拓展点Spring解决循环依赖的方法三级缓存流程Spring如何解决循环依赖为什么必须是单例为什么无法支持原型对象呢?为什么不能全是构造器注入为什么循环依赖......
  • SpringBoot中操作Bean的生命周期的方法
    SpringBoot中操作Bean的生命周期的方法路人路人甲Java2024-01-1719:17发表于上海引言在SpringBoot应用中,管理和操作Bean的生命周期是一项关键的任务。这不仅涉及到如何创建和销毁Bean,还包括如何在应用的生命周期中对Bean进行精细控制。Spring框架提供了多种机制来......
  • spring boot 3.2.1 dremio jdbc jprofiler 集成
    jprofiler可以直接与idea集成,对于分析一些实际需要debug但是不好复现的问题还是比较方便的,以下是一个简单的与dremio集成的,springboot使用了3.2(jdk需要17)同时也会包含一些启动说明安装idea插件直接plugins的市场中搜索安装就可以了,之后就是配置了idea启动配置因......
  • Sa-Token介绍与SpringBoot环境下使用
    个人博客:无奈何杨(wnhyang)个人语雀:wnhyang共享语雀:在线知识共享Github:wnhyang-Overview官网:Sa-Token一个轻量级Java权限认证框架,让鉴权变得简单、优雅!介绍Sa-Token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话......
  • 使用ChatGPT解决在Spring AOP中@Pointcut中的execution如何指定Controller的所有方法
    背景使用ChatGPT解决工作中遇到的问题,https://xinghuo.xfyun.cn/desk切指定类在SpringAOP中,@Pointcut注解用于定义切点表达式,而execution属性用于指定切点表达式的具体匹配规则。要指定Controller的所有方法,可以使用以下方法:使用类名和方法名进行精确匹配。例如,如果要匹配名......
  • Spring 事务的概念
    ①什么是事务数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。②事务的特性A:原子性(Atomicity)一个事务(transaction)中的所......