-
前言
本章节系列适合有一定基础,正在了解、学习分布式架构的朋友们,为保证内容质量,大部分资源借助Spring Cloud中国社区、官方源码和翟永超先生所著《Spring Cloud微服务实战》一书中揣摩、提炼、论证而来的,版本是基于1.X。
由于Spring Cloud发布时间并不长,目前网上关于Spring Cloud的资源杂乱无章,让很多在用Spring Cloud的朋友很头疼,遇到问题不知所措,接下来笔者会针对这些痛点问题整理分析。
OK,需要说明的是:本章节系列并不是描述如何从0搭建一个微服务架构,而是按Spring Cloud组件拆解,把关键点、开发中常用的技术点及核心原理作整理。所以,本内容可能没办法让你从0开始,但当你有疑点的时候,或许能在这找到答案!
希望本内容能给广大朋友提供些许帮助,同时欢迎朋友们把好的建议和疑问在文章下方留言或发送到我邮箱(369787235@qq.com)一起探讨,让文章更加完善,thanks!
-
基础知识:
Spring Cloud(后文将统一称之为'SC')是目前做微服务架构一个很好的框架体系,它不并不是一种技术、一种框架,它是很多技术的结合体(后文将详细介绍)。
OK,凡事都有两面性,那么微服务架构带来的好处和坏处大体可以分为以下几点:
- 解决单体应用随着业务扩增变得越来越臃肿的问题;
- 解决单体系统重新部署导致所有功能不可用问题;
- 系统各个业务场景不一样,并发量,资源消耗量等等,微服务架构能够针对性的为不同服务配以相应条件;
- 增加开发、运维难度,以及开发成本成倍增加;
总结:单体系统在初期可以非常方便的开发和使用,但是随着系统的发展,业务不断扩增,将会导致系统变得非常臃肿,难以维护,而微服务架构能够让系统在扩展性,可用性,稳定性方面都有更好的表现;
-
SC组件简介(标蓝色为常用基本组件,也会在本专栏优先探讨):
1.Spring Cloud Config:分布式配置管理组件;
2.Spring Cloud Netflix:核心组件,对多个Netflix OSS开源套件进行组合;
Eureka:服务注册中心,实现服务注册与服务发现;
Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力;
Ribbon:客户端负载均衡的服务调用组件;
Feign:基于ribbon和 hystrix的声明式服务调用组件;
Zuul:网关组件,提供智能路由,访问过滤等功能;
Archaius:外部化配组件.
3.Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件,以触发后续的处理,比如用来动态刷新配置等;
4.Spring Cloud Cluster:针对Zookeeper、Redis、Hazelcast、Consul的选举算法和通用状态模式的实现;
5.Spring Cloud Stream:通过Redis、rabbitmq或者kafka实现的消费微服务,可以通过简单的声明式模型来发送和接收消息;
6.Spring Cloud Security:安全工具包,提供在Zuul代理中对OAuth2客户端请求的中继器;
7.Spring Cloud ZooKeeper:基于ZooKeeper的服务发现与配置管理组件;
8.Spring Cloud Sleuth:分布式服务端链路跟踪组件,常和Logstash,Zipkin整合使用
Ok,本章节到此结束,下一章节介绍:Eureka.
Thanks!