SpringCloud介绍

简介

Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具,它为微服务架构中设计的配置管理,服务治理,断路器,智能路由,微代理,控制总线,全局锁,决策竞选,分布式会话和集群状态管理等操作提供了一个简单的开发方式。

Spring Cloud子项目

  • Spring Cloud Config:配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。并支持客户端配置信息刷新、加密/解密配置内容。

  • Spring Cloud Netflix:核心组件,对多个Netflix OSS开源套件进行整合

    • Eureka:服务治理组件,包含服务注册中心,服务注册发现,故障转移,基于REST;

    • Hystrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力;

    • Ribbon:提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用;

    • Feign:基于Ribbon和Hystrix的声明式服务调用组件;

    • Zuul:网关组件,提供动态路由,监控,安全,弹性,访问过滤等功能;

    • Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能;

  • Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件,以触发后续的处理,比如用来动态刷新配置等,可与Spring Cloud Config联合实现热部署。

  • Spring Cloud Cluster:提供Leadership选举,如:Zookeeper, Redis, Hazelcast, Consul等常见状态模式的抽象和实现。

  • Spring Cloud Cloudfoundry:与Pivotal Cloudfoundry的整合支持,是VMware推出的开源PaaS云平台。

  • Spring Cloud Consul:服务发现与配置管理工具,与Docker容器可以无缝集成。

  • Spring Cloud Stream:数据流操作开发包,通过Redis、Rabbit或者Kafka实现的消息微服务,可以通过简单的声明式模型来发送和接收消息。

  • Spring Cloud AWS:用于简化整合Amazon Web Service的组件。

  • Spring Cloud Security:安全工具包,提供在Zuul代理中对OAuth2客户端请求的中继器,为你的应用程序添加安全控制。

  • Spring Cloud Sleuth:日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。

  • Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务发现和配置管理。

  • Spring Cloud Starters:Spring Boot式的启动项目,为Spring Cloud提供开箱即用的依赖管理。

  • Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。

  • ......

Spring Cloud的拓展

  1. 服务间的调用如何提高性能,是否支持长连接?Spring Cloud的http请求慢在了哪里,是不支持长连接么,每次请求都要新建连接?

  2. Spring Cloud的调用方法有哪几种,特性,优缺点有哪些?

  3. Ribbon+RestTemplate:

  4. Feign:是一个基于HTTP和TCP客户端的负载均衡器,其实feign也使用了ribbon, 只要使用@FeignClient时,ribbon就会自动使用。

  5. 如何实现客户端无感知的服务自动上线和下线?

参考:

《Spring Cloud 微服务实战》

Last updated