1. 微服务
- 微服务:基于业务边界进行服务微化拆分,各个服务独立部署运行
2. 集群 & 分布式 & 节点
- 集群:【物理形态】将一些服务器集中在一起,实现同一业务。
- 分布式:【工作方式】将不同的业务分布在不同的地方
- 分布式的每一个节点都可以做集群。但集群不一定是分布式的。
- 🌰:京东是一个分布式系统,众多业务运行在不同的机器上。所有业务构成一个大型的业务集群。每一个小业务如用户系统,都部署在多个服务器上 ⇒ 所有业务是一个大的集群,每个小业务也可以是一个集群
- 节点:【集群中的一个服务器】
3. 远程调用
- 远程调用:在分布式系统中,各个服务可能处于不同的主机,服务之间的互相调用就叫远程调用
- SpringCloud使用HTTP + JSON实现远程调用 【天然的跨平台性】
4. 负载均衡
分布式系统中,A服务器需要调用B服务器,B服务在多台机器中都存在 ⇒ A调用任意一台服务器均可完成功能。
- 负载均衡:不要让任何一台服务器太忙或太闲,通过负载均衡调用每一个服务器,提升网站的健壮性。
- 常见负载均衡算法:
- 轮询
- 最小连接
- 散列
5. 服务注册/发现 & 注册中心 & 配置中心
- 注册中心:实时感知到其他服务的状态,从而避免调用不可用的服务
- 配置中心:【集中管理微服务的配置信息】每个服务最终都有大量的配置,并且每个服务都可能部署在多台机器上,经常需要变更配置 ⇒ 配置中心可让每个服务在配置中心获取自己的配置
6. 服务熔断 & 服务降级
- 服务熔断
- 设置服务的超时:当被调用的服务经常失败到达某个阀值,可开启断路保护机制,后来的请求不再去调用这个服务。本地返回默认的数据
- 服务降级
- 在运维期间,当系统处于高峰期,系统资源紧张,🉑️让非核心业务降级运行【某些服务不处理、简单处理(抛异常、返回NULL、调用Mock数据、调用Fallback处理逻辑)等】
7. API网关
- API Gateway:抽象了微服务中都需要的公共功能,同时提供了客户端负载均衡,服务自动熔断、灰度发布、统一认证、限流流控、日志统计等