微框架不归路之一,springCloud 简介
要说springCloud,就要先介绍一下微服务,因为springCloud是spring为微服务架构思想做的一个一站式的实现。
简单来说,微服务是一个概念,是一个项目开发的架构思想,springCloud只是其的一种java的实现。
如果复杂来说,我就说不上来了,为了弥补现有架构的不足而发展出来的一种架构吧。
微服务:
一种可以让软件职责单一,松耦合,自包含,可以独立运行部署的架构思想。
上面说过了,它就是为了弥补原有系统架构的不足,而产生的一种架构思想。
微服务架构实施要解决的问题:
问题 | 解决方案 |
服务治理 | 阿里巴巴的Dubbo,当当在其基础上扩展的DubboX,Netflix的Eureka,Apache的Consul |
分布式配置管理 | 百度的Disconf,Netflix的Archaius,360的QConf,SpringCloud的Config,淘宝的Diamond |
批量任务 | 当当的Elastic-Job,LinkedIn的Azkaban,SpringCloud的Task |
服务跟踪 | 京东的Hydra,SpringCloud的sleuth,Twitter的Zipkin等 |
....... |
SpringCloud:
springCloud 是微服务的一种具体实现方式,springCloud是基于SpringBoot实现的云应用开发工具,
springCloud包含了很多个子项目:
springCloud config :配置管理工具,支持Git存储配置内容,实现外部存储,支持支客户端配置信息刷新,加密 解密配置内容。
SpringCloud Netflix: 核心组件,包括以下:
Eureka: 服务治理组件,包括服务注册中心,服务注册和发现机制的实现。
HyStrix:容错管理组件,实现断路器模式,帮助服务依赖中的出现的延迟和人为故障提供强大的容错能力。
Ribbon:客户端负载均衡的服务调用组件。、
Feign: 基于Ribbon和HyStrix的声明式服务调用组件
Zuul: 网关组件,提供智能路由,访问过滤等功能。
Archaius: 外部配置组件
Spring Cloud Bus ,事件,消息总线,用于传播集群中的状态变化或事件,以触发后续的处理,如果用来动态刷新配置。
SpringCluster:针对Zookeeper,Redis,Consul的选举算法和通用状态模式的实现。
SpringCloud Cloudfoundry: 与Pivotal CloudFoundry的整合支持
SpringCloud Stream: 通过Redis,Rabbit或者Kafka实现的消费微服务,可以通过简单的声明式模型来发送和接收消息。
Spring Cloud AWS: 用于简化整合Amazon web service的组件。
SpringCloud Security: 安全工具包,提供在Zuul代理中对Oauth2客户端请求的中继器。
Spring Cloud Sleuth: spring Cloud 应用的分布式服务跟踪实现,可以完美整合Zipkin,
SpringCloud Zookeeper基于Zookeeper的服务发现与配置管理组件。
SpringCloudStarters: Spring Cloud 的基础组件,它是基于SpringBoot峰哥项目的基础依赖模块。
SpringCloud CLI:用于在Groovy中快速创建SpringCloud应用的SpringBootCLI插件。
........
好了,以上就是SpringCloud 的一小部分子项目了,要学习SPringCLoud,还要稍加注意一下一下内容:
springCloud的版本号
SpringCloud的版本名和Spring的是完全不一样的。
SpringCLoud的版本都会包含多个不同版本的子项目,每个子项目都通过命名的方式来记录。目前这个RELEASE版本名都是用的伦敦的地铁站的名字,比如:Angel,Brixton,C...,D....,E.....。具体的每个版本用的SRX来标记的。SR1,SR2,SR3,SR4......
由于Spring版本不一致会导致很多的奇葩问题。所以要注意下,SpringCLoud的版本号。