主要功能模块:
Eureka:云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。分析:spring cloud 家族的基础模块,用于服务治理(服务发现、注册更新等),可以用zookeeper代替(个人更倾向eureka,因为感觉在这里CAP理论中AP比CP更合适),2.x eureka不再继续维护,但感觉不升级也基本够用了,当然也可以替换为 Consul 。
Feign:Feign是一种声明式、模板化的HTTP客户端。分析:很好的调用服务工具,整合了Ribbon和Hystrix。
Hystrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。分析:方便实现,降级回滚、熔断、快速失败等操作。Hystrix有两种隔离策略线程隔离和信号量隔离,推荐一般使用线程隔离(官方、个人),只有负载(同等的资源支持的访问量)特别高的非网络调用才适合信号量隔离,因为线程隔离HystrixCommand会在单独的线程执行,不影响业务线程。
Ribbon:提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。了解:由六部分组成,ServerList 服务列表(一般基于服务发现),ServerListFilter服务列表过滤器(集成spring cloud 默认ZonePreferenceServerListFilter,),
Zuul:Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。
配置支持模块:
Spring Cloud Config:配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。
Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
监控运维模块
Spring Cloud Sleuth:日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。建议配合:ELK+Zipkin
Turbine:Turbine是聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况。
Spring Cloud Security:基于spring security的安全工具包,为你的应用程序添加安全控制。个人:快速实现安全验证、可以快速搭建oauht2体系、jwt认证协议等。
其它简介(根据需求选配):
Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。
Spring Cloud Data Flow:大数据操作工具,作为Spring XD的替代产品,它是一个混合计算模型,结合了流数据与批量数据的处理方式。
Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务发现和配置管理。
Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。
Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。
Spring Cloud Task:提供云端计划任务管理、任务调度。
Spring Cloud Connectors:便于云端应用程序在各种PaaS平台连接到后端,如:数据库和消息代理服务。
Spring Cloud Cluster:提供Leadership选举,如:Zookeeper, Redis, Hazelcast, Consul等常见状态模式的抽象和实现。
Spring Cloud Starters:Spring Boot式的启动项目,为Spring Cloud提供开箱即用的依赖管理。
Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。
Consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。
Sidecar:异构服务解决方案,集成一个历史项目或者其它语言的项目到微服务体系。