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

相关文章
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
46 0
|
30天前
|
负载均衡 Java API
Spring Cloud 面试题及答案整理,最新面试题
Spring Cloud 面试题及答案整理,最新面试题
132 1
|
30天前
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
138 0
|
1月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
131 0
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
81 0
|
1月前
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
403 0
|
2天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
3天前
|
Java API 对象存储
对象存储OSS产品常见问题之使用Spring Cloud Alibaba情况下文档添加水印如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
22 2
|
17天前
|
负载均衡 网络协议 Java
构建高效可扩展的微服务架构:利用Spring Cloud实现服务发现与负载均衡
本文将探讨如何利用Spring Cloud技术实现微服务架构中的服务发现与负载均衡,通过注册中心来管理服务的注册与发现,并通过负载均衡策略实现请求的分发,从而构建高效可扩展的微服务系统。
|
17天前
|
开发框架 负载均衡 Java
Spring boot与Spring cloud之间的关系
总之,Spring Boot和Spring Cloud之间的关系是一种构建和扩展的关系,Spring Boot提供了基础,而Spring Cloud在此基础上提供了分布式系统和微服务架构所需的扩展和工具。
16 4
Spring boot与Spring cloud之间的关系