谷粒商城项目-P3简介-分布式基础概念
1.微服务
将一个单独的应用程序开发为一套小服务,小服务之间通过HTTP API这种轻量级机制通信。
2.集群 分布式 节点
集群是个物理形态,几台服务器集中在一起,实现同一业务
分布式是个工作方式,将不同的业务分布在不同的地方。
分布式中的每一个节点,都可以做集群,而集群不一定就是分布式的。
节点是集群中的一个服务器。
3.远程调用
在分布式系统中,不同服务之间的互相调用称为远程调用,在SpringCloud中,使用HTTP+JSON的方式完成远程调用。
4.负载均衡
A服务调用B服务时,B服务可能在多台机器中均存在,A调用任意一台机器均可完成功能。负载均衡就是要让所有的机器均不要太忙或者太闲。
常见的负载均衡算法有:轮询、最小连接、散列(根据请求源的IP,保证特定的用户能够连接到相同的服务器)
5.服务注册/发现 注册中心
将服务在注册中心注册的过程,叫做服务注册
在注册中心看到某个服务是否上线的过程,叫做服务发现
6.配置中心
每一个服务都有大量的配置,并且每个服务都可能部署在多台机器上,经常会有变更配置的需求,因此可以上每个服务在配置中心获取自己的配置,集中管理微服务的配置信息。
7.服务熔断 服务降级
在微服务架构中,微服务之间通过网络进行通信,存在互相依赖,当一个服务不可用时,有可能会造成雪崩效应。要防止这样的情况,需要有容错机制来保护服务。
服务熔断:设置服务的超时,当被调用的服务经常失败达到某个阈值,可以开启断路保护机制,后来的请求不再去调用这个服务,本地直接返回默认的数据。
服务降级:在运维期间,当系统处于高峰期,系统资源紧张时,可以让非核心业务降级运行,也就是说某些业务不处理,或者简单处理,例如抛异常返回NULL、调用Mock数据、调用Fallback处理逻辑等。
8.API网关
抽象了微服务中都需要的公共功能,提供了客户端负载均衡、服务自动熔断、灰度发布、统一认证、限流流控、日志统计等丰富的功能。