1、SpringBoot 版本选择
Git 源码地址:https://github.com/spring-projects/spring-boot/releases/
官网查看 Boot 版本:https://spring.io/projects/spring-boot
Git 源码地址:https://github.com/spring-projects/spring-boot/releases/
官网查看 Boot 版本:https://spring.io/projects/spring-boot
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配呵,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相协作(通常是基于 HTTP 协议的 RESTful API)。每个服务都围绕着就业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
SpringCloud = 分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶
需求:订单服务调用支付服务
为了实现服务治理,实现微服务之间的动态注册与发现
Eureka 已经停更进维
Eureka 对初学者不友好
自我保护机制
主流趋势:注册中心独立且和微服务功能解耦
按照 Netflix 的之前的思路,注册中心 Eureka 也是作为一个微服务且需要程序员自己开发部署
实际情况,我们希望微服务和注册中心分离解耦,注册中心和业务无关的,不要混为一谈,提供类似 Tomcat 一样独立的组件,微服务注册上去使用,是个成品
阿里巴巴 Nacos 的崛起(Service discovery and configuration management)
SpringCloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端负载均衡的工具。
简单的说,Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon 客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出 Load Balancer(简称LB)后面所有的机器,Ribbon 会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用 Ribbon 实现自定义的负载均衡算法。
官网介绍:https://docs.spring.io/spring-cloud-openfeign/reference/spring-cloud-openfeign.html
GitHub:https://github.com/spring-cloud/spring-cloud-openfeign
了解一下即可,2024 年了不再使用 Hystrix
Hystrix 是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix 能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性
Sleuth 为来替换方案:Micrometer Tracing
在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败
官网地址:https://docs.spring.io/spring-cloud-gateway/reference/index.html
Gateway 是在 Spring 生态系统之上构建的 API 网关服务,基于 Spring6,Spring Boot 3 和 Project Reactor 等技术
官网地址:❗(显示的版本不一定是最新)https://spring.io/projects/spring-cloud-alibaba#overview
2018.10.31,Spring Cloud Alibaba 正式入驻了 Spring Cloud 官方孵化器,并在 Maven 中央库发布了第一个版本