前几篇小博客记录了我学习SpringCloud组件的过程,并与工做中所用的Dubbo框架作了一点比较,基本组件:Eureka、Ribbon、Hystrix、Feign、Zuul、Config,固然,这些目前在工做中还不曾使用,可是做为一名程序员,选择了IT行业,你就永远不能被时代落下,真所谓JS的名言:“真正的大师永远怀揣着一颗学徒的心”,机会是给有准备的人的,因此什么都了解一点,生活更多彩一些。html
SpringCloud中文网:https://www.springcloud.cc/git
官网地址:https://github.com/Netflix/eureka程序员
①Eureka采用C-S的设计架构,分为客户端和服务端两部分;服务器端,也被称做是服务注册中心,用于提供服务的注册与发现;客户端组件包含服务消费者与服务生产者。在应用程序运行时,Eureka客户端向注册中心注册自身提供的服务并周期性的发送心跳来更新它的服务租约。同时也能够从服务端查询当前注册的服务信息并把他们缓存到本地并周期性的刷新服务状态。github
②Eureka支持高可用的配置,当集群中有分片出现故障时,Eureka就会转入自动保护模式,它容许分片故障期间继续提供服务的发现和注册,当故障分片恢复正常时,集群中其余分片会把他们的状态再次同步回来。spring
③涉及注解:@EnableEurekaServer、@EnableEurekaClientdocker
官网地址:https://github.com/Netflix/ribbon缓存
①客户端负载均衡安全
②涉及注解:@LoadBalanced、@RibbonClient(配置)服务器
官网地址:https://github.com/OpenFeign/feign架构
①Feign是一个声明式的WebService客户端,底层默认实现了Ribbon负载均衡,使用很是简单:接口+注解
②涉及注解:@FeignClient("微服务名称") 注:此注解用于接口
官网地址:https://github.com/Netflix/hystrix
①Hystrix是一个用于处理分布式系统的延迟和容错的开源库,我作了服务熔断和降级练习
②涉及注解:@HystrixCommad(fallback="方法名")、结合@FeignClient(fallbackFactory=xxx.class)
官网地址:https://github.com/Netflix/zuul
①提供代理、路由、过滤三大功能
②Zuul服务最终仍是会注册到Eureka
③涉及注解:@EnableZuulProxy
官网地址:https://www.springcloud.cc/spring-cloud-config.html
①SpringCloud Config分为服务端和客户端
②SpringCloud Config为微服务架构中的微服务提供了集中化的外部配置支持,配置服务器为各个不一样微服务应用的全部环境提供了一个中心化的外部配置。
③涉及注解:@EnableConfigServer
至此、SpringCloud的基本组件:Eureka、Ribbon、Feign、Hystrix、Zuul、Config已经了解了,接下来i就是一些进阶的,好比:
①SpringCloud Stream:数据流开发包
②SpringCloud Turbine:聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics状况
③SpringCloud Task:提供云端计划任务管理、任务调度
④SpringCloud Sleuth:日志收集工具包实现了一种分布式追踪解决方案,封装了Dapper和log-based追踪以及Zipkin和HTrace操做。
⑤SpringCloud Security:基于spring security的安全工具包,为应用程序添加安全控制
以及其余方面的学习,例如:
①服务部署:Kubernetes、OpenStack
②全链路追踪:Zipkin,brave
③服务监控:zabbix
④SpringCloud CLI:基于Spring Boot CLI,能够以命令行的方式快速创建云组件
⑤全局控制:选举leader、全局锁、全局惟一id
⑥安全鉴权:Oauth二、openId connect
⑦自动化构建与部署:gitlab+jenkins+docker