SpringCloud01-微服务简介
简单的介绍了SpringCloud中的微服务技术栈。
微服务技术栈
微服务拆分,形成微服务集群
注册中心:拉取活注册服务信息(记录微服务的ip端口等,微服务调用关系访问注册中心获得对方信息)
配置中心:拉取配置信息(统一的管理所有微服务的配置,实现配置的热更新)
服务网关组件:身份校验,将请求路由到服务,可以进行负载均衡
分布式缓存:实现高并发
分布式搜索:进行复杂的搜索
消息队列:异步通信,提高服务并发
分布式日志服务:统计整个集群的日志,统一存储,统计进行分析
系统监控链路追踪:实时监控整个集群中每个节点的运行状态,一旦出现问题可以快速定位异常所在
自动化部署(Jenkins)
打包(Docker) kuebernetes RANCHER
微服务简介
单体架构
将业务的所有功能集中在一个项目中开发,打成一个包部署。
优点:
架构简单
部署成本低
缺点:
- 耦合度高
分布式架构
根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
优点:
- 降低服务耦合
- 有利于服务升级拓展
缺点:
- 服务治理
- 服务拆分粒度?
- 服务集群地址如何维护?
- 服务之间如何实现远程调用?
- 服务健康状态如何感知?
微服务架构特征
微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:
- 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
- 面向服务:微服务对外暴露业务接口
- 自治:团队独立、技术独立、数据独立、部署独立
- 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
微服务结构
技术框架
SpringCloud
Dubbo
SpringCloudAlibaba
差异对比
Dubbo | SpringCloud | SpringCloudAlibaba | |
---|---|---|---|
注册中心 | zookeeper、Redis | Eureka、Consul | Nacos、Eureka |
服务远程调用 | Dubbo协议 | Feign(http协议) | Dubbo、Feign |
配置中心 | 无 | SpringCloudConfig | SpringCloudConfig、Nacos |
服务网关 | 无 | SpringCloudGateway、Zuul | SpringCloudGateway、Zuul |
服务监控和保护 | Dubbo-admin,功能弱 | Hystrix | Sentinel |
SpringCloud
SpringCloud是目前国内使用最广泛的微服务框架。
SpringCloud基于SpringBoot
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 玖!
评论