谷粒商城
- 微服务架构图
- 1. 分布式架构--微服务
- 1.1 微服务
- 1.2 远程调用 SpringCloud Feign:声明式HTTP客户端
- 1.3 负载均衡 SpringCloud Alibaba-Ribbon
- 1.4 注册中心:服务发现和注册 SpringCloud Alibaba Nacos
- 1.5 配置中心 SpringCloud Alibaba Nacos
- 1.6 服务熔断&服务降级 SpringCloud Alibaba Sentinel
- 1.6.1 服务熔断
- 1.6.2 服务降级
- 1.7 API网关 SpringCloud Gateway
- 1.8 调用链路监控 SpringCloud-Sleuth
- 1.9 分布式事务解决方案 SpringCloud Alibaba -Seata
微服务架构图
1. 分布式架构–微服务
1.1 微服务
- 拒绝大型单体应用。
- 微服务拆分基于业务边界。
- 微服务之间使用HTTP通信。
- 微服务可以通过docker部署。
- 不同服务可以使用不同的编程语言和存储技术。
- 保持最低限度的集中式管理。
1.2 远程调用 SpringCloud Feign:声明式HTTP客户端
- SpringCloud中使用HTTP+JSON方式完成远程调用,不同服务之间通信。
1.3 负载均衡 SpringCloud Alibaba-Ribbon
- 分布式系统中,a服务调用b服务,b服务在多台机器上都存在,调用任意一台即可完成功能。
- 负载均衡算法有轮询和最小连接。
1.4 注册中心:服务发现和注册 SpringCloud Alibaba Nacos
- a服务调用b服务,a服务并不知道当前b服务的状态,引入注册中心可以解决。 如某些服务下线,可是实时感知,从而避免调用不可用服务。
1.5 配置中心 SpringCloud Alibaba Nacos
- 每个服务在注册中心获取自己的配置。做到集中维护和批量维护。
1.6 服务熔断&服务降级 SpringCloud Alibaba Sentinel
微服务之间网络通信,相互依赖,当某个服务不可用时,可能会存雪崩效应。
- 一个服务不可用导致:业务中断,请求积压,服务器资源耗尽,该服务器上所有资源均不可用。
为应对这种情况,引入容错机制。
1.6.1 服务熔断
设置服务超时阈值,开启短路保护,本地直接放回默认数据。
1.6.2 服务降级
业务高峰期,非核心业务运行降级,某些服务不处理或简单处理
- 抛出异常
- 返回NULL
- 调用Mock数据
- 调用Fallback处理逻辑
1.7 API网关 SpringCloud Gateway
- 提供api管理的功能
- 同时提供客户端负载均衡,服务自动熔断,灰度发布,统一认证,限流流控,日志统计等。