Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

这篇具有很好参考价值的文章主要介绍了Spring Boot 单体应用一键升级成 Spring Cloud Alibaba。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:十眠

背景

随着 Apache Dubbo、Nacos 以及 Spring Cloud 等服务框架的流行,越来越多的企业开始采用微服务架构来构建其应用程序。微服务架构使企业能够将其应用程序拆分成多个小型服务,这些服务可以独立部署和扩展。这种架构模式也使企业更容易实现敏捷开发和持续交付,从而提高了其业务效率和响应能力。

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

微服务四大件:注册中心、服务提供者、服务消费者、服务治理

如今,随着服务提供者、服务消费者、服务注册中心以及服务治理等微服务几大件的出现和成熟,使得我们使用微服务开发,不仅可以做到快速开发,更能够追求微服务的高效和稳定。

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

单体 or 微服务?

从上图我们可以看到,随着业务规模的增大,选择单体架构与微服务架构的选择趋势,他们之间存在一个交点。在交点之后,选择微服务架构,业务规模越大越可以享受到微服务架构带来的效率的提升。我们可以观察到,这个交点在持续地向左移动。数字化进程的快速发展普遍让企业的 IT 系统更复杂,开源以及云计算推进的技术标准化,正在大幅度地降低微服务架构的技术门槛,在云上小公司也可以很好地玩转微服务。随着这个趋势的到来,还在使用单体架构的企业也逐渐考虑向微服务转型。我们发现在云上大部分 Java 应用仍然是基于 SpringBoot 的,Spring Boot 应用由于其架构实现的简单性,客户端只需通过 http 和域名就能实现服务调用。因此,许多中小型公司仍然采用该方式进行应用开发。从技术角度上看,我们如何升级 SpringBoot 应用至微服务架构,享受到微服务治理带来的技术红利,我们需要增加 SpringCloud 的 maven 依赖?需要业务进行代码改造?本文可以回答你,不需要一行代码改动。

本方案可以通过 MSE 无侵入实现 Java 应用的注册、发现与治理能力。

  1. 当前 MSE 提供的注册中心产品能力主要集中在非持久化服务发现,即服务的状态维护在 client,需要业务方依赖 SDK 主动注册服务,并维持心跳;本方案提供了一种的持久化服务发现能力。
  2. 解决跨平台服务发现问题,如跨 K8s 服务发现、非 K8s 服务和 K8s 服务互相发现等。
  3. 无侵入实现基于 Spring Boot 应用的服务治理能力,如全链路灰度、限流降级、安全可信等。

方案实践与探索

为了验证该场景,我们提供了一个稍微比较复杂的Demo,通过该 Demo 来分别演示如何通过 MSE 无侵入实现 Spring Boot 应用的服务注册与服务治理。Demo 是根据 K8s Service 进行服务发现并且通过简单的 HttpClient 进行请求调用,详细请求如下:

➜  ~ curl http://47.97.117.48/A/spring_boot                                   
A[10.0.3.238] -> B[10.0.3.227] -> C[10.0.3.230]%

架构如下所示:

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

介绍完 Demo 之后,我们来逐步演示如何通过服务治理进行服务注册。

通过服务治理完成服务注册

  1. 进入到对应的 MSE Nacos 实例页面,选择创建服务

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

  1. 我们填写好服务名、分组名之后,可以选择一个服务治理的应用进行注册

  2. 开启了健康检查能力后,我们还可以选择健康检查的协议

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

  1. 点击确定后,我们就实现了通过服务治理方式注册应用与实例至 MSE Nacos 中

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

  1. 根据下图配置,我们分别将 A 应用注册成 sc-A、B 应用注册成 sc-b、C 应用注册成 sc-c

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

  1. 同时我们修改 Zuul 应用的 Nacos 地址配置,使其通过 SDK 方式注册至 MSE Nacos 中

  2. 我们通过服务治理方式注册的服务,我们还可以通过服务治理方式将对应的节点从 MSE Nacos 中下线

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

  1. 点击 MSE 服务治理中节点详情页面的服务下线,在不用重启应用 pod 的条件下,实现服务从注册中心中下线

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

到目前为止,我们完成了通过服务治理实现服务注册。

通过服务治理完成服务订阅

  1. 我们在需要订阅 Nacos 服务的应用中增加如下 Env

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

  1. 如何订阅对应的服务?

我们 Http 请求域名直接调用对应的服务即可,比如:

restTemplate.getForObject("http://sc-b:20002/spring_boot", String.class);

其中 sc-b 为服务名,默认的分组名可以通过 mse_nacos_group 指定,如果需要指定分组名可以调用 http://sc-b:20002/spring_boot?mse_nacos_group=xxx 即可。

  1. 验证

a.通过 MSE Nacos 控制台可以验证,明确订阅关系

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

b.通过端到端请求验证

➜  ~ curl http://47.97.117.48/A/spring_boot
A[10.0.3.238] -> B[10.0.3.229] -> C[10.0.3.241]%

无侵入实现基于 SpringBoot 应用的全链路灰度

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

到目前为止,我们默认就具备了符合如上场景的全链路灰度能力。

➜  ~ curl http://47.97.117.48/A/spring_boot -H "x-mse-tag: gray"              
Agray[10.0.3.240] -> B[10.0.3.229] -> Cgray[10.0.3.241]%

总结

使用 Spring Boot 应用一样可以快速享受到全链路灰度能力带来的发布体验。我们通过MSE 服务治理能力与Nacos引擎的整合,可以进一步简化与降低研发在云上需要关注的部分,应用的客户端可以再轻量化,进一步提升研发效率。

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

点击此处进入微服务引擎 MSE 官网查看文章来源地址https://www.toymoban.com/news/detail-449553.html

到了这里,关于Spring Boot 单体应用一键升级成 Spring Cloud Alibaba的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务网关:Spring Cloud Zuul 升级 Spring Cloud Gateway 的核心要点

    在routes路由规则中,根据path去匹配,如果匹配中,就使用对应的路由规则进行请求转发 如果无法从routes中匹配,则根据path用“/”去截取第一段作为服务名进行请求转发,转发时,默认将第一段截取调 如果截取的服务名不在注册中心中存在服务,则报错404 在routes路由规则中

    2024年02月07日
    浏览(67)
  • Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系

    一、前言 在搭建SpringCloud项目环境架构的时候,经常需要选择SpringBoot和SpringCloud进行兼容的版本号。因此,对于选择SpringBoot版本与SpringCloud版本的对应关系很重要,如果版本关系不对应,常见的会遇见项目启动不起来,怪异的则会是你的项目出现一些诡异的问题,查资料也不

    2024年02月07日
    浏览(55)
  • 【Spring Cloud】如何确定微服务项目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本

    本文描述如何确定微服务项目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本。 我们知道Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本选择一致性非常重要。在选择Spring Boot和Spring Cloud版本时,需要考虑到两者之间的关系以及项目的具体需求。 首先,Spring Boot和Spring Cloud有密切

    2024年02月08日
    浏览(63)
  • Spring Boot 中的 Spring Cloud Gateway

    Spring Cloud Gateway 是一个基于 Spring Boot 的网关框架,它提供了一种统一的入口,将所有的请求路由到不同的后端服务中。Spring Cloud Gateway 采用了 Reactive 编程模型,可以处理大量并发请求,同时还具备负载均衡、熔断、限流等功能。本文将介绍 Spring Cloud Gateway 的原理和使用方法

    2024年02月12日
    浏览(50)
  • Spring boot与Spring cloud 之间的关系

    Spring boot与Spring cloud 之间的关系 Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务,Spring Boot,看名字就知道是Spring的引导,就是用于启动Spring的,使得Spring的学习和使用变得快速无痛。不仅适合替换原有的工程结构,更适合微服务开发。 Spr

    2024年02月09日
    浏览(49)
  • 浅谈Spring Cloud与Spring Boot概念与关系

    Spring boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的,产品级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊的开始,多数Spring应用只需要很少的Spring配置。 Spring boot简化了基于Spring的应用开发,通过少量的代

    2024年02月11日
    浏览(35)
  • Spring Boot 和 Spring Cloud Framework 的区别

    大家好,如果您从事 Java 开发并创建了微服务,那么您可能知道  Spring Boot 和 Spring Cloud是两个流行的基于 Java 的框架,广泛用于构建企业级应用程序,尤其是服务器端后端 Java 应用程序。这两个框架均由 Spring 团队开发,并提供独特的功能,使它们在市场上脱颖而出。虽然

    2024年02月07日
    浏览(44)
  • Spring Boot、Spring MVC 和 Spring Cloud 深度解析

    Spring Boot、Spring MVC 和 Spring Cloud是三个在Java企业级开发中非常重要的框架。他们各自具有不同的功能,但是也可以一起使用来创建强大且可扩展的应用程序。 Spring Boot是为了简化Spring应用开发而创建的。它使用了一种\\\"约定优于配置\\\"的方法,使得开发者可以更加专注于编写业

    2024年02月07日
    浏览(42)
  • tidb Cloud 连接spring boot 项目

    一、 免费试用tidbitcloud TiDB Cloud Documentation | PingCAP Docs 1.github账号登录  2.创建集群 3.点击对应集群cludter0 导入数据  导入 本地导入只支持csv文件,其他导入需要AWZ账号使用S3云存储   二、连接spingboot项目 选择java,复制下面的jdbc 下载CA证书:   配置spring boot 项目里的url   

    2024年01月17日
    浏览(36)
  • Spring Cloud + Spring Boot 项目搭建结构层次示例讲解

    以下是我搭建Spring cloud项目架构的经验,我将以图片的形式和大家进行分享;至于Spring Boot的搭建经验,我会在图后以文字描述的方式和大家分享,请往下看: Spring Boot的搭建经验,我会以文字描述的方式和大家分享,请往下看: Controller 层 :Controller 层负责处理客户端的请

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包