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

相关文章
|
2月前
|
监控 负载均衡 Java
5 大 SpringCloud 核心组件详解,8 张图彻底弄懂
本文图文详解 Spring Cloud 的五大核心组件,帮助深入理解和掌握微服务架构。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
5 大 SpringCloud 核心组件详解,8 张图彻底弄懂
|
1月前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
39 6
|
1月前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
63 5
|
1月前
|
缓存 监控 Java
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
45 5
|
2月前
|
负载均衡 算法 Java
除了 Ribbon,Spring Cloud 中还有哪些负载均衡组件?
这些负载均衡组件各有特点,在不同的场景和需求下,可以根据项目的具体情况选择合适的负载均衡组件来实现高效、稳定的服务调用。
131 5
|
4月前
|
XML 缓存 Java
spring源码剖析-spring-beans(内部核心组件,BeanDefinition的注册,BeanWapper创建)
spring源码剖析-spring-beans(内部核心组件,BeanDefinition的注册,BeanWapper创建)
68 10
|
4月前
|
XML 存储 Java
spring源码刨析-spring-beans(内部核心组件,beanDefinition加载过程)
spring源码刨析-spring-beans(内部核心组件,beanDefinition加载过程)
|
6月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
15125 33
|
5月前
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
5月前
|
负载均衡 监控 Java
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控