谷粒商场项目笔记-项目起步

一、微服务

将一个大型应用拆分成一个个小服务,通过这些小服务来实现业务功能。基于业务边界进行服务微化拆分,各个服务独立部署运行。

二、集群&分布式&节点

集群是物理形态,分布式是工作状态。

分布式是若干个独立计算机的集合,将不同的业务分布在不同的地方。
集群是指将几台服务器集中在一起,实现同一个业务。
节点:集群中的一个服务器

三、远程调用

HTTP+JSON
Dubbo服务
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的远程服务调用方案。

四、负载均衡

常见的负载均衡算法:
1、轮询法
  将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
轮询算法是最简单的一种负载均衡算法。它的原理是把来自用户的请求轮流分配给内部的服务器:从服务器1开始,直到服务器N,然后重新开始循环。
算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。

2、随机法
通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。

3、源地址哈希法
源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

4、加权轮询法
  不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。
5、加权随机法
与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。

6、最小连接数法
最小连接数算法比较灵活和智能,由于后端服务器的配置不尽相同,对于请求的处理有快有慢,它是根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。

五、服务注册/发现&注册中心&服务追踪

常见注册中心 consul、eureka、zookeeper、nacos

六、配置中心

常见配置中心 Spring Cloud Config 、Apollo、Nacos

七、服务熔断&服务降级

服务熔断:
设置服务的超时,当被调用方经常失败达到某个阈值,开启断路保护机制,后来的请求不在去调用这个服务。本地直接返回默认的数据。

服务降级:
在运维期间,当系统处于高峰期,系统资源紧张,我们可以让非核心业务降级运行,以保证核心业务的运行。
降级:某些服务补处理,或者简单的处理【跑一场、返回NULL、调用Mock数据、调用Fallback处理逻辑】。

Mock数据:
处于开发环境模拟接口返回的数据(用于开发状态后端还没给接口),不会影响生产环境,只是方便我们还没与后端交互时不阻塞我们开发流程。
mock数据的好处 :
团队可以并行工作,
可以用演示开发成果,实时反馈开发进度
模式测试并简单了解接口编写为全栈打基础

八、API网关

在微服务架构中,API Gateway 作为整体架构的重要组件,他 抽象类服务中需要的公共功能,同时它提供了客户端负载均衡,服务自动熔断,灰度发布,统一认证,限流监控,日志统计等丰富功能,帮助我们解决很多 API 管理的难题

猜你喜欢

转载自blog.csdn.net/qq_36073688/article/details/113142691