1.微服务
拒绝大型单体项目,基于业务的边界进行服务 微化拆分,将各个服务独立部署
2.分布式&节点&集群
分布式 : 将业务运行到各个服务器上~~例如京东访问www.jd.com 进去之后你只感受到了京东的的业务流程,其实每个服务是在不同的机器上完成的~~,这就是一个分布式,也就相当于是业务集群。(各个业务运行在各个服务器,合起来完成一个工作叫分布式)
集群: 当某个模块访问量大的时候一台机器承受不了他的压力,让多台机器去处理一个模块,达到一个缓解压力的一个实现。(十台服务器都是用户服务不能算是一个分布式)翻译(“多台服务器完成同一个节点”)
节点: 分布式中的一个服务器(每一个业务),每个服务器都可以做集群
分布式和集群的区别在于,集群不一定是分布式,分布式的每一个节点可以做集群
3.远程调用
分布式会造成一种服务器与服务器之间不能互相调用的问题,以一种http+json的形式实现,也可以跨平台。
A机器调b机器
4.负载均衡
当某个模块访问量大的时候我们会对其做一个集群操作,此时需要访问到这个某块集群的不同服务器了,{一个服务器访问定额数上限了换其他的服务器访问这个模块,形成负载均衡},保证集群的每个服务器不会太闲和太忙,我们会使用负载均衡调用每一个服务器。
负载均衡算法:
- 轮询:每个服务器轮流调用
- 最小连接算法: 根据某个服务器调用的次数最少来判断调用哪个服务器
- 散列:根据ip 请求,调用相对应的服务器
保证每个集群的每个机器都可以调用,形成负载均衡
5服务注册与发现&注册中心
根据服务的心跳来判定这个服务是否存在::{分析一个业务场景,假如你a调的是b模块,b模块集群了三个机器(三个机器都是对应的解决b业务某块的),三个机器都注册到了注册中心,(服务注册),在a调用b时,b会轮流给a提供服务(负载均衡:轮询),这时候如果检测到某个服务下线了,就会检测到其已经停止了心跳,就不会去调停止心跳的机器了,此时的服务注册中心已经没有了此机器的服务(轮询列中已经没有了此机器的服务)(服务发现)}避免调用不可用的服务(服务发现)
维护某服务在某机器的清单就叫注册中心
6.配置中心
与服务注册中心异曲同工之妙~~~(在原有的问题上思考,不同的服务会有配置,当a配置改了再通知其他配置b.,c进行一个改动,那么需要去操作b,c的配置文件会造成一个浪费开发时间的一个过程)我们需要一个类似于服务注册中心的思想,让配置变成一个系统化的管理,这时候我们给它 取个名字叫配置中心,我们所有的服务的配置通过配置中心获取配置,大大增大了开发效率
总结::同过配置中心管理配置信息
7.服务熔断&降级
(业务场景:当a用户调用b商品时,b商品会调用库存c。如果此时的一个c宕机了,或者是业务c的一个访问延迟,导致整个b会延迟或访问不了一直访问c,往前看a也会延迟导致整个流程拥挤,然后在考虑一个并发的情况,多个访问延迟或者一直调用内存会导致整个服务器abc都会一个崩溃,这就是一个很常见的雪崩问题)服务熔断就是解决b在访问c时迟迟未响应不进行一个访问(给c设置一个访问时间。,如果三秒之后没有访问到,那么b就不去访问c,如果请求c都失败了那么久返回库存的一个默认值或者为null,这样就不会导致请求积压从而雪崩),降级就是b访问c失败时,c有一个降级方法,b会去调用c的降级方法(返回为null或者抛出异常)
熔断:调用不成功对其不访问返回一个值
降级:调用成功对调用的区域进行降级方法块返回
8.API网关
微服务架构中最重要的组件 (API网关实现限流,统一认证)相当于一个安检入口
对api进行一个安全检查,放行进来的请求就是后台一个处理的请求,放行不过来的请求那么后台也无需处理