SpringCloud

SpringCloud Gateway使用和配置,SpringCloud Gateway predicates详细配置 SpringCloud Gateway使用和配置, SpringCloud Gateway routes详细配置,SpringCloud Gateway predicates详细配置SpringCloud Gateway 跨域配置,SpringCloud Gateway 超时配置 ================================ ©Copyright 蕃薯耀2021-03-18... 阅读详情

微服务框架

1 单体应用

1.1 什么是单体应用

项目所有的资源都放在一个应用中,打包成一个war包,使用一个Tomcat运行,运行在一个进程中

1.2 单体应用的问题

  1. 一个模块挂了,所有的项目都受影响
  2. 单个Tomcat处理并发有限,可以做集群,但不方便其中某一个模块的扩展
  3. 维护、开发、升级等比较麻烦
  4. 代码臃肿,打包比较慢
  5. 技术选型单一
  6. 数据库选型单一

2 微服务架构

2.1 什么是微服务架构

  1. 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值
  2. 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被技术选项,独立开发,独立部署,独立运维,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
  3. 微服务之间使用网络通信协议进行数据交互(通常是基于HTTP的RESTful API)

2.2 微服务的优点

  1. 数据库选型多样化
  2. 技术选型多样化
  3. 每个微服务专注于一个业务
  4. 每个微服务都有自己的进程
  5. 微服务之间通过网络协议进行通信
  6. 方便做局部拓展
  7. 维护、开发、升级等比较方便

2.3 微服务缺点

  1. 成本高
  2. 技术要求比较高
  3. 部署麻烦

在这里插入图片描述

2.4 SpringCloud简介

SpringCloud是一个基于Spring Boot实现服务治理的工具包,用于微服务架构中管理和协调服务的

2.5 SpringCloud和Dubbo的区别

  • Dubbo是RPC框架
  • SpringCloud是一系列微服务解决方案
  • Dubbo基于tcp
  • SpringCloud基于HTTP
  • Dubbo在通信方面的性能高于SpringCloud

3 SpringCloud入门

3.1 注册中心原理

在这里插入图片描述

  1. 微服务启动时会把自己的通信地址(ip;端口;服务名字)注册到注册中心
  2. 微服务会从注册中心获取一份微服务通信地址清单
  3. 当服务发起调用,就会从服务地址清单中找到目标服务的通信地址,实现调用
  4. 注册中心能够使用心跳机制实现微服务的动态上下线,间隔单位时间检查微服务的健康状态,把下线的微服务从地址清单中剔除掉,其他为服务同步地址清单

3.2 搭建注册中心

3.2.1 创建多模块工程
springcloud-parent
  springcloud-eureka-server-1000 //注册中心EurekaServer 
  springcloud-order-server-3000  //订单服务EurekaClient ,消费者
  springcloud-user-server-2000   //用户服务EurekaClient ,提供者
3.2.2 springcloud-parent管理依赖
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>
    <groupId>cn.itsource</groupId>
    <artifactId>springcloud-parent1</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>springcloud-eureka-server-1000</module>
        <module>springcloud-user-server-2000</module>
        <module>springcloud-order-server-3000</module>
    </modules>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</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>
        </dependencies>
    </dependencyManagement>
</project>
3.2.3 springcloud-eureka-server-1000导入依赖
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
3.2.4 主配置类
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication1000 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication1000.class);
    }
}
3.2.5 配置文件application.yml
server:
  port: 1000

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false #禁用注册中心向自己注册
    fetchRegistry: false #不让注册中心获取服务的注册列表
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      #注册中心的注册地址

3.3 搭建提供者服务 springcloud-user-server-2000

3.3.1 导入依赖
<dependencies>
   <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
   </dependency>

</dependencies>
3.3.2 创建配置类
//@EnableDiscoveryClient:开启注册中心客户端 EurekaClient
@SpringBootApplication
@EnableDiscoveryClient
public class UserServerApplication2000 {
    public static void main(String[] args) {
        SpringApplication.run(UserServerApplication2000.class);
    }
}
3.3.3 配置文件
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:1000/eureka/ #注册中心地址
server:
  port: 2000
spring:
  application:
    name: user-server

3.4 搭建消费者服务 springcloud-order-server-3000

3.4.1 导入依赖
<dependencies>
   <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
   </dependency>

</dependencies>
3.4.2 创建配置类
@SpringBootApplication
@EnableDiscoveryClient
public class OrderServerApplication3000 {
    public static void main(String[] args) {
        SpringApplication.run(OrderServerApplication3000.class);
    }
}
3.4.3 配置文件
server:
  port: 3000
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:1000/eureka/ #注册中心地址

spring:
  application:
    name: order-server

3.5 使用ip注册

修改用户服务和订单服务如下

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:1000/eureka/ #注册中心地址
  instance:
    prefer-ip-address: true #使用ip地址注册
    instance-id: order-server  #指定服务的id

4 订单服务和用户服务完成通信

在这里插入图片描述

4.1 搭建公共的用户模块

建立domain:user

4.2 user-server提供者服务编写接口

4.2.1 依赖公共模块
<dependency>
    <groupId>cn.itsource</groupId>
    <artifactId>springcloud-common-user</artifactId>
    <version>1.0-SNAPSHOT</version>
    <scope>compile</scope>
</dependency>
4.2.2 创建controller
/**
 * 用户服务提供者
 */
@RestController
public class UserProviderController {
    @Value("${server.port}")
    private String port;
    @GetMapping("/user/{id}")
    public User getUserById(@PathVariable("id")Long id){
        return new User(id, "zs" + id, "123:" + port);
    }
}

4.3 order-server消费者服务

4.3.1 依赖公共模块
<dependency>
    <groupId>cn.itsource</groupId>
    <artifactId>springcloud-common-user</artifactId>
    <version>1.0-SNAPSHOT</version>
    <scope>compile</scope>
</dependency>
4.3.2 定义RestTemplate的bean
/**
 * SpringMvc提供的一个基于Rest风格的http调用工具
 * @return
 */
@Bean
public RestTemplate restTemplate(){
    return new RestTemplate();
}
4.3.3 定义消费者的Controller
/**
 * 订单消费者服务
 */
@RestController
public class OrderConsumerController {
    @Autowired
    private RestTemplate restTemplate ;
    /**
     * 该方法是浏览器来调用
     * @param id
     * @return
     */
    @GetMapping("/order/user/{id}")
    public User getUserById(@PathVariable("id") Long id){
        System.out.println("OrderConsumerController.getUserById被调用了......");
        String url = "http://localhost:2000/user/"+id;
        User user = restTemplate.getForObject(url, User.class);
        return user;
    }
}

5 EurekaServer高可用集群

5.1 单节点故障

什么是EurekaServer单节点故障

如果只有一个EurekaSever,如果EurekaSever挂了那么整个微服务都不可用

解决方案

EurekaServer高可用集群

5.2 EurekaServer集群

5.2.1 原理图

在这里插入图片描述

5.2.2 搭建EurekaServer集群
  • 创建两个本地域名 C:\Windows\System32\drivers\etc\hosts
    127.0.0.1 peer1
    127.0.0.1 peer2
  • 修改注册中心eureka-server-1000
server:
  port: 1000
eureka:
  instance:
    hostname: peer1
  client:
    registerWithEureka: false #禁用注册中心向自己注册
    fetchRegistry: false  #不让注册中心获取服务的注册列表
    serviceUrl:
      defaultZone: http://peer2:1001/eureka/
      #注册中心的注册地址 ,其他微服务需要向这个地址注册
  • 搭建第二个注册中心eureka-server-1001
server:
  port: 1001
eureka:
  instance:
    hostname: peer2
  client:
    registerWithEureka: false #禁用注册中心向自己注册
    fetchRegistry: false  #不让注册中心获取服务的注册列表
    serviceUrl:
      defaultZone: http://peer1:1000/eureka/
      #注册中心的注册地址 ,其他微服务需要向这个地址注册
5.2.3 修改EurekaClient (UserServer ,OrderServer)
eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1:1000/eureka/,http://peer2:1001/eureka/ #注册中心地址
      ...

6 Ribbon

ribbon是负载均衡器,是基于RestTemplate ,它赋予了RestTemplate 负载均衡的能力

6.1 集群和负载均衡原理

在这里插入图片描述

6.2 提供者user-server集群

6.2.1 创建user-server服务2001 - 赋值
6.2.2 修改配置
eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1:1000/eureka/,http://peer2:1001/eureka/ #注册中心地址
  instance:
    prefer-ip-address: true #使用ip地址注册
    instance-id: user-server1  #指定服务的id
server:
  port: 2000 
spring:
  application:
    name: user-server
6.2.3 修改主类名,pom中的名字,parent中的模块增加

6.3 order-server集成Ribbon

6.3.1 导入依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
6.3.2 修改RestTemplate的Bean的定义
/**
 * SpringMvc提供的一个基于Rest风格的http调用工具
 * @LoadBalanced :ribbon的负载均衡标签,赋予RestTemplate有负债均衡的能力
 */
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
    return new RestTemplate();
}

@LoadBalanced :ribbon的负载均衡标签,赋予RestTemplate有负债均衡的能力

6.3.3 修改Controller调用方式
@GetMapping("/order/user/{id}")
public User getUserById(@PathVariable("id") Long id){
    System.out.println("OrderConsumerController.getUserById被调用了......");
    //String url = "http://localhost:2000/user/"+id;
    String url = "http://user-server/user/"+id;
    User user = restTemplate.getForObject(url, User.class);
    return user;
}

修改效果: String url = "http://user-server/user/"+id;
ribbon默认使用的轮询策略

SpringCloud详解 SpringCloud官网SpringCloud是一个由Spring公司维护的分布式系统开发框架,它是基于SpringBoot的微服务框架。SpringCloud提供了一系列的组件和开发工具,用于构建分布式系统的各个方面,如服务发现、服务注册、服务调用、负载均衡、分布式配置中心等。本篇博客详细介绍了SpringCloud的概述、主要组件和应用场景,并提供了相应的代码示例,希望能够帮助读者更好地理解和掌握SpringCloud的实际开发应用。 阅读详情

相关推荐

springcloud hystrix实战(二)

本文介绍了如何在Spring Cloud微服务项目中集成Hystrix熔断器。主要内容包括:1)基于原有8001服务创建新工程microservicecloud-provider-dept-hystrix-8001;2)添加Hystrix依赖;3)在Controller中使用@HystrixCommand注解定义fallback方法,当查询ID不存在时自动触发熔断;4)主启动类添加@EnableCircuitBreaker开启熔断支持。通过测试验证了当查询不存在的ID时,系统能正确返回fallback方法中

ywl470812087的博客 11万+

Spring系列学习之Spring Cloud Pipelines微服务管道

英文原文:https://spring.io/projects/spring-cloud-pipelines 目录 概述 特性 Spring Boot配置 运行Cloud Foundry的演示 Concourse Jenkins 根据您的需求调整管道 快速开始 学习 文档 示例 概述 重要:该项目已弃用。它被迁移到:Cloud Pipelines。你可以在这里读更多关于...

纸上得来终觉浅,绝知此事要躬行 3718

从零搭建自己的SpringCloud项目,及SpringBoot升级到SpringCloud填坑

首先我们的项目构成是这个样子的,一个单体的Springboot项目。迫于需求越来越多,准备升级到SpringCloud,目前用到了SpringCloud的三个组件。eureka-注册中心,admin-监控面板,gateway-api网关。 因为我们以前是springboot项目,升级到springcloud涉及到springboot的版本,spring的版本、mybatis的版本等等,中间遇到了N多的坑,后边一一道来。特殊说明: 因为我们用到了springcloud的网关是gateway而非zuul..

weixin_43952697的博客 1963

SpringCloud常用注解总结

公司正在用springcloud微服务改造老项目,为了方便查找和学习,汇总一些常用的注解。使用过程中定期更新。 SpringCloud常用注解总结: @Controller 控制层,里面有多个连接 @Service 业务层,一般对于接口和实现 @Qualifier 如果一个接口有多个实现,那么注入时候加上唯一标示 @Repository 一般的dao层 @Autowired 自动注入依赖 @Com...

kang神的博客 2万+

soul网关源码解析-springcloud接入-springcloud插件

文章目录运行 soul-examples-springcloud demo配置pom文件项目的注册管理后台运行结果 运行 soul-examples-springcloud demo 配置 pom文件 <dependency> <groupId>org.dromara</groupId> <artifactId>soul-spring-boot-starter-plugin-springcloud</artifa

坚持需要成为习惯 198

机器学习入门指南:Jupyter Notebook实战

对于机器学习工程师而言,他们更擅长的是算法、模型、数据探索的工作,而对于工程化的能力则并不是其擅长的工作。Jupyter Notebook生成PMML文件1​​​​​​​。Jupyter Notebook生成PMML文件2​​​​​​​。PySpark Notebook建模 -折线图​​​​​​​。TensorFlowNotebook建模​​​​​​​。R Notebook建模 - 散点图​​​​​​​。PySpark Notebook建模​​​​​​​。R Notebook获取训练数据集​​​​​​​。

datacreating的博客 1974

SpringCloud & SpringCloud Alibaba基本介绍

SpringCloud & SpringCloud Alibaba基本介绍

爱笑的boy的博客 1824

别光看原理图了!手把手教你用Altium Designer搞定STM32F411最小系统的PCB布局(附电源/晶振/复位电路实战)

本文详细介绍了使用Altium Designer进行STM32F411最小系统PCB布局的实战技巧,涵盖电源分配网络优化、高速信号布线及系统级布局策略。通过规范的工程结构建立、关键设计规则预设和核心电路模块布局,帮助工程师提升PCB设计效率与信号完整性。特别针对STM32最小系统的电源、晶振和复位电路提供了专业解决方案。

weixin_42653691的博客 166

SpringCloud Alibaba与SpringCloud的区别是什么?

SpringCloud Alibaba与SpringCloud的区别是什么?一、SpringCloud是什么?二、SpringCloud Alibaba是什么?二、SpringCloud Alibaba与SpringCloud Netflix对照总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、SpringCloud是什么? SpringCloud是解决微服务问题的工具箱 SpringCloud核心部件: SpringCloud Netflix: SpringCloud时画饼的,定义需要解决的问

weixin_45540382的博客 8693

ParallelsDesktop 安装 CentOS-6.9-x86_64-minimal 教程

安装参考 tools没做 想安装的可以参考这个 mac 本机环境: 系统:macOS Catalina version 10.15.6 虚拟机软件:parallels Desktop 15 for Mac( Parallels Desktop-15.1.4(47270)) Centos镜像: CentOS-6.9-x86_64-minimal.iso https://mirrors.aliyun.com/centos-vault/6.8/isos/x86_64/ http://vault.centos.

爱吃鱼的小明的博客 955

【LLC快速上手系列】如何在LLC谐振里优雅地调死区时间?

用示波器死盯Vds波形,找到ZVS临界点;别听“经验值”,亲自调才准;死区时间并非越短越好,也不是越长越稳,而是要“刚刚好”;用热成像看MOSFET温升变化,ZVS调好了,温度马上掉2~5℃;轻载难ZVS?适当提升频率 or 降低Lr可破!

weixin_43199439的博客 491

SpringCloud使用Gateway常用的断言(predicates)种类以及规则

SpringCloud使用Gateway的断言种类以及规则     基础提要:SpringCloud中的Gateway网关. 这里是我们9527网关服务的yml配置文件,可以看到是动态路由,根据断言(predicates)匹配到/testGateWay01路径的请求后,再通过服务名SPRINGCLOUD-PROVIDER-DEPT去服务注册中心负载均衡地获取到服务并访问! spring: application: name: cloud-gateway cloud: gateway:

易柏州的博客 1万+

YOLOv8架构革命:通过EfficientViT融合实现精度-速度的帕累托突破

目标检测领域长期存在精度与速度的权衡难题。视觉Transformer(ViT)的引入解决了长距离依赖问题,但其巨大的计算复杂度制约了实时应用。最新研究表明,将轻量级ViT与YOLO架构融合,可在几乎不损失推理速度的前提下,将mAP提升3-8个百分点。这种架构改进方案已在工业检测、自动驾驶、安防监控等多个领域得到验证,在保持实时性的同时显著提升了复杂场景下的检测可靠性。通过模块化设计,可以灵活适配不同规模的YOLOv8模型,为实际应用提供精度-速度的帕累托最优解。

FJN110的博客 148

SpringCloud总结

SpringCloud的学习总结

weixin_45983532的博客 3893

RK3568平台(KBuild篇)KBuild编译体系

从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这和过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。kbuild,即 kernel build,用于编译 Linux 内核文件。

weixin_49303682的博客 348

工业4.0必备:C#上位机+数字孪生 生产线实时监控与智能预警系统(工业级实战)

数据割裂:PLC、传感器、工业相机的数据散落在不同系统,想看全局生产状态要切换N个软件,“数据孤岛”导致决策滞后;故障难预判:设备突发故障时,只能停机排查,平均故障响应时间超30分钟,一条生产线停工1小时损失超10万;可视化差:传统监控只有冰冷的数字和2D图表,设备运行状态、生产流程、物料流转无法直观感知,新人上手需3个月才能熟悉产线。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 658

springcloud的熔断和降级

springcloud的熔断: 第一步,导入依赖; 第二步,开启对熔断的支持: 第三步,熔断方法的使用: 若id存在就执行get方法;若id不存在,则客户端不会报错,会执行自定义的hystrixGet方法

stubborn的博客 4394

【OpenFOAM】-olaFlow-算例6- waveFloatingObject

波浪作用下的浮体的刚体运动,属于流固耦合(FSI)问题

ou_no的博客 3537

SpringCloud介绍及 IntelliJ IDEA如何创建SpringCloud项目

最近学习了一下SpringCloud,顺便分享给大家。 一、SpringCloud介绍 目前主流的微服务框架:Dubbo、 SpringCloud、thrift、Hessian等,目前国内的中小企业用的大多数都是Dubbo,SpringCloud估计很少,也许有些开发同学都没听说过。 springCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配...

一火的专栏 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【SpringCloud】SpringCloud学习入门

摘要:SpringCloud是基于SpringBoot的微服务框架,提供分布式系统开发工具集,包含配置管理、服务发现等核心组件。与SpringBoot专注于单微服务开发不同,SpringCloud负责全局微服务治理。相比Dubbo+Zookeeper方案,SpringCloud兼容性更好且实现更简单。开发流程包括:创建数据库表、构建API模块定义数据模型、开发服务提供者和消费者模块,其中消费者仅负责请求转发。项目依赖管理采用统一版本控制,包含SpringCloud、MyBatis等核心组件。

杨DaB的博客 802

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SpringCloud(0) —— 为什么要学习SpringCloud

目录1.回顾前面学习的知识点2.学习SpringCloud的基础3.为什么要学习SpringCloud1.MVC三层架构1.MVC三层架构2.简化MVC三层架构的Spring3.简化Spring的SpringBoot2.新的架构:微服务架构1.为什么需要新的架构2.什么是微服务架构3.微服务架构的需要解决的问题4.微服务架构问题解决办法/方案1.SpringCloud NetFilx(第一套SpringCloud生态)2.Apache Dubbo zookeeper(第二套SpringCloud生态)3.S

Jzandth的博客 1109

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[SpringCloud] SpringCloud配置中心的核心原理

SpringCloud中配置中心的核心原理

959 1324

【SpringCloud】SpringCloud简单配置

出现以下界面,说明SpringCloud服务完成,之后就可以添加其他项目了。这样子就完成了SpringCloud简单的配置。

m0_56039765的博客 1829

【SpringCloud】一、SpringCloud介绍

而微服务的目标是什么?只是让各个模块拆分开来,不会被互相影响,比如模块的升级或者出现BUG或者是重构等等都不要影响到其他模块,微服务它是可以在一台机器上部署; 但是:分布式也是微服务的一种,微服务也属于分布式

weixin_43333483的博客 2602

SpringBoot与SpringCloud的版本及SpringCloud1与SpringCloud2

首先是SpringBoot与SpringCloud的版本对照,可以看下这篇博客 https://blog.youkuaiyun.com/qq32933432/article/details/89375630 补充: 目前最新版本为 Spring Cloud Greenwich.SR4 访问https://spring.io/blog/category/releases?spm=a2c6h....

泯灭于众生,高歌于孤夜! 2639
上一篇: SpringBoot
下一篇: Nginx
虞铭轩、
博客等级 码龄7年 3粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值