SpringCloud微服务
组件
基本组件
- 服务集群:将系统中的不同业务拆分成微服务,微服务之间会相互调用
- 注册中心:管理每一个微服务的通信地址,允许动态上线和下线服务
- 配置中心:集中管理整个系统中的所有配置
- 服务网关:整个系统对用户的门面,对用户隐藏微服务架构,负责请求路由和负载均衡
其它组件
- 消息队列:提供微服务间的异步调用,提高系统响应速度和吞吐量
- 分布式缓存:对数据库系统中的信息进行缓存
- 分布式搜索:搜索引擎,用来实现一些全文搜索功能
- 系统监控链路追踪/分布式日志服务:对系统的运行进行监控
持续集成
- 指对微服务进行打包,上线的自动化部署技术,使用到的技术有
Jenkins
、kubernetes
、docker
和rancher
等
微服务架构特征
常见微服务技术之间的关系
Dubbo
Dubbo是微服务技术刚刚兴起时,阿里开源的一套微服务解决方案。但它们只开源了部分内容,所以只能基于一些其它的开源方案来实现注册中心,并且它的远程调用采用Dubbo自己的协议。
- 无配套的注册中心解决方案
- 远程调用采用Dubbo协议,需要遵循Dubbo的规范编写
SpringCloud
针对市面上常见的微服务组件进行整合,提供完善的微服务解决方案。
- 各类组件齐全,完善
- 经过Spring整合之后,各类组件被自动配置,且相互兼容,使用简单
- 采用
Feign
远程调用,使用简单的http协议
SpringCloudAlibaba
是阿里将自己的分布式服务组件整合到SpringCloud技术中,这样,就可以很方便的使用SpringCloud中原有的组件进行开发
- 具有SpringCloud的全部优点
- 支持Dubbo和Feign两种远程调用方式
- 提供自己的新的注册中心和服务监控(Nacos、Sentinel)
SpringBoot与SpringCloud对应版本
微服务拆分
- 保证微服务间没有重复业务,每个微服务提供最小的业务
- 数据独立,每个微服务维护自己的数据库且不访问其它微服务的数据库
- 将自己的业务暴露为接口,供其他微服务调用