SpringCloud微服务架构
- 什么是微服务架构
微服务一词来自Martin Fowler(马丁福勒)和James Lewis的Microservices一文 微服务是一种架构风格,
将单体应用划分为小型的服务单元 微服务之间采用HTTP的API进行资源访问和操作或者RPC的方式进行
通信
点击原文链接 - 微服务的特点及适用场景
1、微服务的特点
围绕业务进行服务拆分 每个服务都是独立进程 服务之间采用轻量级通信协议(HTTP REST通信) 去中心化管理,每个微服务可以采用各自的语言进行开发
2、微服务不适用的场景
系统中包含很多强事务场景的(微服务下,是采用柔性事务的方式,即最终一致性实现分布式事务) 业务相对稳定,迭代周期长 访问压力不大,可用性要求不高 - 什么是Spring Cloud
SpringCloud是一系列主流框架的集合。 Spring并没有重复造轮子,只是将目前各个成熟,经得起考验的服务框架组合起来,经过封装之后,让用户以SpringBoot的风格进行开发,屏蔽了复杂的配置和实现原理,给用户提供的一套简单易懂,易部署,易维护的分布式系统开发工具集。
SpringCloud解决了什么问题? 采用SpringBoot的开发便利性,实现了分布式系统基础设施的开发 比如,服务注册与发现中心(注册中心),负载均衡,熔断,配置中心,网关,消息总线,链路监控等等。做到独立部署,可方便进行水平扩展,独立访问等特点。 - Spring Cloud主要学习什么
Netflix Eureka(尤里卡):基于REST服务的分布式中间件,主要用于服务的注册和发现 Feign( 美 [fen]):一个REST客户端,简化WebService客户端的开发
Ribbon(美 [ˈrɪbən]):负载均衡框架,在微服务集群中为各个客户端的通信提供支持,主要实现中间层应用程序的负载均衡 Hystrix( 美 [hɪst’rɪks] ):容错框架,通过添加延迟阈值及容错的逻辑,帮助我们控制分布式系统间组件的交互Zuul,SpringCloud Gateway:服务网关,为微服务集群提供代理,过滤,路由等功能
其他 SpringCloud Config:管理集群中的配置文件,统一配置中心 SpringCloud Sleuth:服务跟踪框架,可以跟Zipkin,Apache HTrace和ELK等数据分析,服务跟踪系统进行整合 SpringCloud Stream:用于构建消息驱动的微服务架构 SpringCloud Bus:连接各种消息代理的集群消息总线。
如下图:
(注:以上介绍的一些组件属于过时组件,但是它们也是历史遗留下来产物,并不是不能用,而是有更好的代替)