spring-cloud学习笔记之中间件、增强生态

spring-cloud学习笔记之中间件、增强生态

  • spring-cloud学习笔记之中间件、增强生态
    • spring-cloud与中间件
      • 什么是spring-cloud
      • spring-cloud项目模块
      • spring-cloud与服务治理中间件
      • spring-cloud与配置中心中间件
      • spring-cloud与网关中间件
      • spring-cloud与全链路监控中间件
    • spring-cloud增强生态

spring-cloud学习笔记之中间件、增强生态

spring-cloud与中间件

​ 中间件作用属于承上启下中间层,本质上归属于技术架构。常见的中间件分为:服务治理中间件、配置中心、全链路监控、分布式事务、分布式定时任务、消息中间件、API网关、分布式缓存、数据库中间件等。

什么是spring-cloud

spring-cloud是一个中间件,是由spring官方开发维护,基于spring-boot开发,提供了一套完整的微服务解决方案。其中包含:服务注册与发现、配置中心、全链路监控、API网关、熔断器等选型中立开源组件、可以按需扩展和替换组装。

spring-cloud项目模块

​ spring-cloud是一个开源的项目集合。具体项目地址GITHUB 。spring-cloud主要组件汇总表如下:

组件名称 所属项目 组件分类
Eureka spring-cloud-netflix 注册中心
Zuul spring-cloud-netflix 第一代网关
Sidecar spring-cloud-netflix 多语言
Ribbon spring-cloud-netflix 负载均衡
Hystrix spring-cloud-netflix 熔断器
Turbine spring-cloud-netflix 集群监控
Feign spring-cloud-openfeign 声明式HTTP客户端
Consul spring-cloud-consul 注册中心
Geteway spring-cloud-getaway 第二代网关
Sleuth spring-cloud-sleuth 链路追踪
Config spring-cloud-config 配置中心
Bus spring-cloud-bus 总线
Pipeline spring-cloud-pipeline 部署管道
Sataflow spring-cloud-sataflow 数据处理

spring-cloud与服务治理中间件

​ 服务治理中间件包括:服务注册与发现、服务路由、负载均衡、自我保护、丰富的智力管理机制等功能。其中服务路由包含服务上下线、在线测试、机房就近选择、A/B测试、灰度发布等;负载均衡:支持根据目标状态和目标权重进行负载均衡;自我保护:包括服务降级优雅降级和流量控制。

​ spring-cloud目前支持使用Eureka、Zookeeper、Consul作为注册中心,并预留了拓展接口,可以无缝替换可以通过Hystrix进行熔断自我保护Fallback,通过Ribbon进行负载均衡。

spring-cloud与配置中心中间件

​ 分布式系统中的配置信息抽取出来统一管理,这个管理的中间件就叫做配置中心。应具有的功能:支持各种复杂的配置场景;与公司运维体系和权限管理体系集成;各种配置兼容支持。

​ spring-cloud-config是spring-cloud生态圈中的配置中心中间件,其中基于应用、环境、版本三个维度进行管理配置存储支持Git和其他存储。且无缝支持spring的Environment和PropertySource接口。缺点是:没有可视化管理界面。因此会用其他配置中心取代他的管理配置。

spring-cloud与网关中间件

​ API Getaway出现在系统边界撒谎那个的一个面向API的串行集中式强管控服务,主要起到隔离外部访问与内部系统的作用。

网管中心具有的四大功能

  • 统一接入功能
  • 协议适配功能
  • 流量管控功能
  • 安全防护功能

​ spring-cloud一共有两代网关:

​ 第一代网管Zuul:是基于Netflix公司开源的Zuul上基于spring-boot注解进行二次封装的。目前Zuul融合了spring-cloud提供的服务治理体系,根据配置的路由规则或默认的路由规则进行路由转发和负载均衡。spring-cloud-zuul如果实现一些灰度、降级、标签路由、限流、WAF封禁,就需要自定义Filter做一些定制化实现。

​ 第二代网关Geteway:第一代网关Zuul处理每个请求的方式是对每个请求分配一个线程处理,在高并发的场景下不适合使用,因此出现第二代网关Geteway。其底层是基于Netty实现的。出现的目的是:替代Zuul。提供了:统一的路由方式并且给予Filter链的方式提供了网管脊背的功能。例如:安全、监控/埋点、限流等。

spring-cloud与全链路监控中间件

​ 全链路监控中间件收集、汇总并分析日志信息,进行可视化展示和监控告警。主要功能包括:

  • 定位慢调用:慢web服务,慢REST或RPC服务、慢SQL。
  • 定位各种错误:包括5xx、4xx、sercice error
  • 定位各种异常:包括:errorr exception、fatal exception
  • 展现依赖和拓扑:域拓扑、服务拓扑、teace拓扑
  • Trace调用链:将端到端的调用,以及附上此次调用的上下文信息,异常日志信息,每一个调用点的好事都呈现给用户进行展示。
  • 应用告警:根据运维规定的告警规则,扫描指标数据

spring-cloud增强生态

​ 主要包括:

  • spring-cloud分布式事务
  • spring-cloud与领域驱动
  • spring-cloud与gRPC
  • spring-cloud与dubbo生态融合

ps:增强生态这还不是很清楚,回头进入学习的时候在仔细介绍

你可能感兴趣的