一、Spring Cloud是什么?
Spring Cloud是基于Spring Boot的一整套实现微服务的框架,它提供了一系列的工具,使得开发人员可以快速构建分布式系统中的一些常见的模式,比如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,主节点选举,分布式session,集群状态。
二、Spring Cloud主要成员:
SpringCloud Netflix:整合了多个NetflixOSS组件(Eureka, Hystrix, Zuul, Archaius等)
SpringCloud Config:分布式系统中的配置管理中心,默认使用GIT仓库存放配置文件
SpringCloud Bus:消息总线,用于在分布式系统中传递状态变化,目前支持RabbitMQ和Kafka
SpringCloud Cluster:提供在分布式系统中的集群所需要的基础功能支持,如:选举、集群的状态一致性、全局锁、一次性令牌等
SpringCloud Consul:对Consul的封装,Consul是HashiCorp公司推出的服务发现与配置工具
SpringCloud Zookeeper:对于ApacheZookeeper操作的封装,用于服务发现与配置管理
除了以上成员,SpringCloud还包括Spring Cloud Cloudfoundry,Spring Cloud Open Service Broker,SpringCloud Security,Spring Cloud Sleuth,Spring Cloud Data Flow,Spring Cloud Stream,Spring Cloud Task,Spring Cloud Gateway,Spring Cloud Pipelines,Spring Cloud Function等。
三、Spring Cloud架构图(来自官网):
四、一次典型的处理过程:
1. 客户端通过API网关Zuul来访问后台的微服务
2. Eureka是服务发现组件
3. Zuul作为Eureka的客户端,从Eureka服务器中获取信息
4. Ribbon进行负载均衡,把请求分发到对应的服务器
5. Hystrix提供了熔断、隔离等功能
6. Config提供了集中式的配置管理服务
7. Turbine提供了集群监控的功能
参考资料:
1. https://spring.io/projects/spring-cloud
2. https://dzone.com/articles/microservice-architecture-with-spring-cloud-and-do