Spring Cloud 二代组件

简介: spring cloud 现在已经是一种标准了,各公司可以基于它的编程模型编写自己的组件 ,比如Netflix、阿里巴巴都有自己的一套通过spring cloud 编程模型开发的分布式服务组件 。Spring Cloud Alibaba 主要包含 Sentinel、Nacos、RocketMQ、Dubbo、Seata 等组件。

先来看一下第一代 spring cloud 的组件


组件名称

功能

描述

Eureka

服务治理(注册、发现......)


Ribbon

客户端负载均衡器


Hystrix

服务之间远程调用时的熔断保护

Hystrix 的使用主要有三种方式

  • HystrixCommand 注解方式
  • 结合 Feign 使用
  • 结合 Zuul 使用

Feign

通过定义接口的方式直接调用其他服务的 API


Zuul

服务网关

提供了路由、监控、弹性、安全等服务。Zuul 能够与 Eureka、Ribbon、Hystrix 等组件配合使用。

Config

分布式配置中心组件


Sleuth

用于请求链路跟踪


Stream

用来为微服务应用构建消息驱动能力



spring cloud 现在已经是一种标准了,各公司可以基于它的编程模型编写自己的组件 ,比如Netflix、阿里巴巴都有自己的一套通过spring cloud 编程模型开发的分布式服务组件 。


Spring Cloud Alibaba 主要包含 Sentinel、Nacos、RocketMQ、Dubbo、Seata 等组件。


Spring Cloud 二代组件


二代引入了 Spring Cloud Alibaba


第一代组件

第二代组件 

Eureka

Nacos

Config

Apollo

Zuul

spring cloud gateway

Hystrix

Sentinel


Eureka VS Nacos


Eureka 之前官方也宣布了暂停了 2.X 版本的开发,1.X 的版本还会维护。其实对于一般的服务规模,目前的 Eureka 完全够用了。而 Nacos 作为后起之秀,目前更新频率很高,社区也更活跃,使用 Nacos 是一个正确的选择。


Apollo VS Spring Cloud Config


功能

spring cloud config

apollo

统一配置管理

集成Git

自带存储(MySql)

多环境区分

配置指定

配置指定

实时更新

Bus消息总线

Http长连接

定时拉取

需要自己扩展

支持

权限控制

需要Git支持

支持

版本管理

Git版本

有直接的版本功能,一键恢复指定版本

Web管理后台


Zuul VS Spring Cloud Gateway


在 Spring Cloud Gateway 出现之前,网关都是用 Zuul 构建的,虽然 Netflix 开源了 Zuul2,由于各种原因,官方并没有打算将 Zuul2 集成到 Spring Cloud 体系中。而是自己研发了一个全新的网关 Spring Cloud Gateway,由于 Zuul1 基于 Servlet 构建,使用的是阻塞的 IO,性能并不是很理想。Spring Cloud Gateway 则基于 Spring 5、Spring boot 2 和 Reactor 构建,使用 Netty 作为运行时环境,比较完美的支持异步非阻塞编程。


官方提供的压测报告显示 Spring Cloud Gateway 的性能是 Zuul 的 1.5 倍,Spring Cloud Gateway 刚出不久,稳定性有待验证,主要是缺乏大规模流量的验证,而 Zuul 开源的时间较长,同时在 Netflix 内部经过了大规模流量的验证,比较稳定。长期发展来说,Spring Cloud Gateway 的优势比较大,毕竟官方主推。


Hystrix VS Sentinel


Hystrix 替换成了 Sentinel,Hystrix 也停止了开发,这个时候 Spring Cloud Alibaba 中的 Sentinel 的优势就很明显了,Sentinel 支持多样化的流量控制,熔断降级等功能,完全可以替代 Hystrix。


其他


  • 分布式事务:Seata
  • 消息队列:     RocketMQ
  • 调用链监控:Apache Skywalking
  • 日志查询:  ELK
  • 指标监控:  Prometheus
  • 分布式缓存:  Redis
  • 分布式定时任务:XXL-JOB


整体架构组件


基于以上,如果我来设计系统架构,那么将用以下组件


组件

功能

Nacos

服务注册中心

Apollo

分布式配置中心

XXL-JOB

分布式定时任务中心

SpringBoot

微服务组件 

Sentinel

服务熔断限流组件 

Spring Cloud Gateway

微服务网关

Spring Cloud OpenFeign

服务通信调用

Seata

分布式事务

RocketMQ

消息队列

Skywalking

服务调用链监控系统

Redis

分布式缓存 

ELK

日志收集、查询系统

Prometheus

Metrics指标监控系统


此外,微服务集群是以容器的方式部署的,用K8S进行docker集群管理。


47.png

相关文章
|
5月前
|
NoSQL 安全 Java
深入理解 RedisConnectionFactory:Spring Data Redis 的核心组件
在 Spring Data Redis 中,`RedisConnectionFactory` 是核心组件,负责创建和管理与 Redis 的连接。它支持单机、集群及哨兵等多种模式,为上层组件(如 `RedisTemplate`)提供连接抽象。Spring 提供了 Lettuce 和 Jedis 两种主要实现,其中 Lettuce 因其线程安全和高性能特性被广泛推荐。通过手动配置或 Spring Boot 自动化配置,开发者可轻松集成 Redis,提升应用性能与扩展性。本文深入解析其作用、实现方式及常见问题解决方法,助你高效使用 Redis。
533 4
|
6月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
236 0
|
6月前
|
负载均衡 Java Nacos
Spring Cloud五大组件
Spring Cloud五大组件
|
10月前
|
监控 负载均衡 Java
5 大 SpringCloud 核心组件详解,8 张图彻底弄懂
本文图文详解 Spring Cloud 的五大核心组件,帮助深入理解和掌握微服务架构。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
5 大 SpringCloud 核心组件详解,8 张图彻底弄懂
|
2月前
|
JSON 前端开发 Java
Spring MVC 核心组件与请求处理机制详解
本文解析了 Spring MVC 的核心组件及请求流程,核心组件包括 DispatcherServlet(中央调度)、HandlerMapping(URL 匹配处理器)、HandlerAdapter(执行处理器)、Handler(业务方法)、ViewResolver(视图解析),其中仅 Handler 需开发者实现。 详细描述了请求执行的 7 步流程:请求到达 DispatcherServlet 后,经映射器、适配器找到并执行处理器,再通过视图解析器渲染视图(前后端分离下视图解析可省略)。 介绍了拦截器的使用(实现 HandlerInterceptor 接口 + 配置类)及与过滤器的区别
193 0
|
5月前
|
负载均衡 前端开发 Java
SpringCloud调用组件Feign
本文深入探讨微服务Spring体系中的Feign组件。Feign是一个声明式Web服务客户端,支持注解、编码器/解码器,与Spring MVC注解兼容,并集成Eureka、负载均衡等功能。文章详细介绍了SpringCloud整合Feign的步骤,包括依赖引入、客户端启用、接口创建及调用示例。同时,还涵盖了Feign的核心配置,如超时设置、拦截器实现(Basic认证与自定义)和日志级别调整。最后,总结了`@FeignClient`常用属性,帮助开发者更好地理解和使用Feign进行微服务间通信。
464 1
|
10月前
|
负载均衡 算法 Java
除了 Ribbon,Spring Cloud 中还有哪些负载均衡组件?
这些负载均衡组件各有特点,在不同的场景和需求下,可以根据项目的具体情况选择合适的负载均衡组件来实现高效、稳定的服务调用。
867 61
|
9月前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
140 6
|
9月前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
160 5
|
9月前
|
缓存 监控 Java
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
171 5