Spring Cloud架构学习笔记

Spring Cloud的需求目标

    微服务架构风格本质上是分布式系统,为了迎合这一潮流,Spring Cloud提供了一些分布式系统常用的开发工具(或模式),使开发者可以方便的把这些模式应用于自己的微服务系统。Spring Cloud提供支持的微服务的模式包括:

  • 开发模式:配置管理;异步消息
  • 路由模式:服务注册发现;服务路由
  • 客户端弹性模式:客户端负载均衡;断路器(Circuit breaker)、隔离(Bulkhead)、应急(Fallback)模式
  • 日志模式:日志关联
  • 安全模式:认证、权限、凭证管理和传播

    还有一些常见的微服务模式,可以从其它软件或者框架获得支持:

  • 日志聚合模式:ELK软件栈
  • 调用链分析:Zipkin
  • 服务监控:Prometheus,Zabbix
  • 持续集成:Jenkins, Travis CI
  • 基础架构即代码:Docker, Kubernetes

Spring Cloud架构总览

Spring Cloud架构学习笔记_第1张图片

    上图是一个使用了Spring Cloud的微服务架构,Spring Cloud的主要组件包括:

  • Spring Cloud Config:支持分布式系统中统一配置管理。
  • Spring Cloud Netflix:通过自动配置、绑定到Spring环境和其它的Spring 编程模式,提供了Spring Boot应用和Netflix开源软件(OSS)的集成。使用一些简单的注解,即可快速地在你的应用里添加经过战斗考验的Netflix组件,以支持微服务中的通用模式:服务注册发现(Eureka),断路器、隔离、应急(Hystrix),服务路由(Zuul),客户端负载均衡(Ribbon)。
  • Spring Cloud Stream:支持在微服务中轻松继承轻量级的消息处理,如RabbitMQ,Kafka。
  • Spring Cloud Sleuth:提供了分布式日志关联解决方案。
  • Spirng Cloud Security:基于Spring Boot和Spring OAuth2提供的微服务安全方案,支持快速实现单点登录(Single Sign On),令牌互换(Token Exchange)等常用的安全模式。

    使用以上的组件即可满足常见的微服务需求,此外,Spring Cloud还提供了以下组件:

  • Spring Cloud Bus:支持连接微服务结点到轻量级消息代理(Message Broker),然后可用于广播状态变化(如配置变化)或其它的管理指令。
  • Spring Cloud Consul:提供Spring Boot应用和Consul的集成。可以提供服务注册发现,统一配置管理模式,作为Eureka和Spring Cloud Config的替代。
  • Spring Cloud Zookeeper:提供Spring Boot应用和Zookeeper的集成。可以提供服务注册发现,统一配置管理模式,作为Eureka和Spring Cloud Config的替代。
  • Spring Cloud Contract:为Spring应用提供消费者驱动契约(Consumer Driven Contract)和服务Schema的支持。
  • Spring Cloud Vault:提供Spring Boot应用和HashiCorp Vault的集成。Vault为密码,app secret等秘密信息提供了安全的存取方案。

参考资料

1. Spring Microservices in Action

2. http://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html

3. https://dzone.com/articles/microservice-architecture-with-spring-cloud-and-do

你可能感兴趣的:(架构设计)