Spring Cloud 简介
Spring Cloud的设计理念是Integrate Everything,即充分利用现有的开源组件,
在它们之上设计一套统一的规范/接口使它们能够接入Spring Cloud体系并且能够无缝切换底层实现。
一、Spring Cloud 与中间件
中间件向下屏蔽异构的硬件、软件、网络等计算机资源,向上提供应用开发、运行、维护等全生命周期的
统一环境与管理,属于承上启下的中间层。中间件本质上可以归属为技术构架,常见的中间件分别是服务
治理中间件(如,Dubbo)、配置中心、全链路监控、分布式事务、分布式定时任务、消息中间件、API网关、
分布式缓存、数据库中间件。
Spring Cloud 是一系列中间件合集,提供了一套完整的微服务解决方案。
1.Spring Cloud 与服务治理中间件
服务治理中间件包括服务注册与发现、服务路由、负载均衡、自我保护、丰富的治理管理机制等功能。
其中服务路由包括服务上下线、在线测试、机房就近选择、A/B测试、灰度发布等。负载均衡支持根据
目标状态和目标权重进行负载均衡。自我保护服务降级、流量监控。
Spring Cloud 目前支持:
1)Euraka、Zookeeper、Consul作为注册中心;
2)Hystrix进行熔断自我保护;
3)Ribbon进行负载均衡;
2.Spring Cloud 与配置中间件
在分布式系统中,由于存在多个实例,需要分别管理每个具体服务工程中的配置,
上线需要准备Check List并逐个检查每个上线服务是否正确。在系统上线后一旦
修改某个配置,就需要重启服务。这样开发管理相当麻烦。因此我们需要把分布式
系统中的配置信息抽取出来统一管理,这个管理的中间件称为配置中心。配置中心
应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限管理
体系集成,各种兼容支持。Spring Cloud Config 是Spring Cloud生态圈中的配置中心中间件。
3.Spring Cloud 与网关中间件
AIP Gateway,是出现在系统边界上一个面向API的、串行集中式的强管控服务,这里的边界是企业
IT系统的边界,可以理解为企业级防火强,主要起到隔离外部访问与内部系统的作用。网关在微服务架构中的位置:
作为一个网关中间件,至少应该具备如下四个功能:
1)统一接入功能:
2)协议适配功能:
3)流量管控功能:
4)安全防护;
Spring Cloud 第一代网关Zuul, 第二代网关Gateway。
4.Spring Cloud 与全链路监控中间件
在微服务架构中,分散在每个服务下的日志信息不利于问题的排查定位问题发生的根本原因。
此时,就可以了利用全链路监控中间件收集、汇总与分析日志信息,进行可视化展示和监控告警。
全链路监控中间件应具备如下功能:
1)定位慢调用:包括慢Web服务、慢REST或RPC服务、慢SQL;
2)定位各种错误:包括4XX、5XX、Service Error;
3)定位各种异常:
4)展现依赖和拓扑:
5)trace条用链:
6)应用警告: