SpringCloud的使用,就像使用PC电脑的品牌机一样,集合了市场上较优组件,替代了之前的DIY微服务框架。
其实在实施微服务的初期阶段,一般使用下面的各种组件进行组合
- 服务治理组件:Netflix的Eureka、Aparche的Consol、阿里的Dubbo或者当当在Dubbo衍生的DubboX等
- 分布式配置管理组件:SpringCloud的Config,360的QConf,或者淘宝的Diamond。
- 批量任务:当当的Elastic-job或者SpringCloud的Task
- 服务跟踪:京东的Hydra、SpringCloud的Sleuth、Twitter的Zipkin
![搭建微服务框架在SpringCloud和自己DIY两种方式上选择哪种更好](http://p2.ttnews.xyz/loading.gif)
自己整合组件搭建微服务,会对微服务会有更好认识,也可以深入的开发一些高级功能,遇到问题也会快速定位到。
使用SpringCloud后,不出问题的时候效率很高,出了问题就需要深入研究了。对于布局微服务早的公司呢,肯定会优先选择自己DIY,但是对于当前准备搭建微服务的团队还是会优先考虑SpringCloud
![搭建微服务框架在SpringCloud和自己DIY两种方式上选择哪种更好](http://p2.ttnews.xyz/loading.gif)
Spring Cloud是以Spring Boot为基础,由多个Spring Boot项目组件搭建而成微服务框架开发工具。
比如:
- Spring Cloud Config:
是一套配置管理的工具,可以使用它实现应用配置的外部化存储并支持客户端配置信息刷新、加密/解密配置内容等
- Spring Cloud Netflix:
核心组件,对多个 Netflix OSS开源套件进行整合。
Eureka:
服务治理组件,包含服务注册中心、服务注册与发现机制的实现
Hystrix:
容错管理组件,实现断路噐模式,帮助服务依赖中出现的延退和为故障提供强大的容错能
Ribbon:
客户端负载均衡的服务调用组件
Feign:
基于 Ribbon和 Hystrix的声明式服务调用组
Zuul:
网关组件,提供智能路由、访可过滤等
Archaius:
外部化配置组件。
- Spring Cloud Bus:
用于传播集群中的状态变化或事件,以触发后续的处理,比如用来动态刷新配置等。
- Spring Cloud Cluster:
针对 Zookeeper、Hazelcast、 Consule、 Redis的选举算法和通用状态模式的实现
- Spring Cloud Consul:
服务发现与配置管理工
- Spring Cloud Stream:
通过 Redis、kafka、 Rabbits实现的消费微服务,可以
发送和接收消息。- Spring Cloud AWS:
用于快速整合 Amazon WebService的组件。
- Spring Cloud Security:
安全组件,提供在Zuul代理中对 Dauth2请求的中继器
- Spring Cloud Sleuth:
Spring Cloud项目的分布式跟踪实现,并且可以完美结合 Zipkin。
- Spring Cloud Zookeeper:
基于 Zookeeper的配置管理和服务发现组件
- Spring Cloud Starters:
Spring Cloud的基础组件,它是基于 Spring Boot项目的基本组件。
- Spring Cloud CLI:
主要是在 Groovy中搭建SpringCloud项目的 Spring Boot CL脚手架插件
上述这么多组件,全局锁、决策选、配置管理、智能路由、代理控制总线、服务治理、断路器、分布式会话和集群状态管理等提供了一种微服务架构简单的开发方式。
閱讀更多 聊推 的文章