八股微服务

Spring cloud

Springcloude五大组件

1.服务注册发现中心 ncaos

2.负载均衡 熔断 Sentinel

3.网关 getway

4.服务调用 feign

服务注册和服务发现是什么

服务注册者,服务发现者,注册中心 三者关系

Nacos与eureka

0.Nacos支持服务端主动检测服务提供者状态,而Eureka依赖客户端心跳。

  1. Nacos区分临时实例和非临时实例,采用不同的健康检查策略。

  2. Nacos支持服务列表变更的消息推送,使服务更新更及时。

  3. Nacos集群默认采用AP模式,但在存在非临时实例时,会采用CP模式;而Eureka始终采用AP模式。

项目的负载均衡

在服务调用过程中,我们使用Spring Cloud的Ribbon组件来实现客户端负载均衡。Feign客户端在底层已经集成了Ribbon,使得使用非常简便。

当发起远程调用时,Ribbon首先从注册中心获取服务地址列表,然后根据预设的路由策略选择一个服务实例进行调用,常用的策略是轮询。

naocs写入了地址,openfeiogn,按照这样来拿

  • 你在项目中引入 spring-cloud-starter-alibaba-nacos-discovery(Nacos 发现适配包);
  • Ribbon 会通过这个适配包,向 Nacos 发起请求,获取目标服务的地址列表;
  • Ribbon 选好实例后,把地址交给 OpenFeign 发起调用;
  • 整个过程中,Nacos 只是 Ribbon 的 "地址数据源",而非 Ribbon 的 "宿主"。

Nacos 提供地址,Ribbon 做负载均衡,Feign 负责发起调用。Feign 内置 Ribbon,Nacos 不内置 Ribbon。

Ribbon负载均衡策略有哪些?
如果想自定义负载均衡策略如何实现?

target-service 有多个实例(如 8080、8081 端口),OpenFeign 会通过内置的 Ribbon 以轮询策略自动选择实例调用,实现负载均衡。

OpenFeign

什么是服务雪崩
微服务健康

链路追踪工具

我们项目中采用的skywalking进行监控的 1,skywalking主要可以监控接口、服务、物理实例的一些状态。特别是在压测的时候可以看到众多服务中哪些服务和接口比较慢,我们可以针对性的分析和优化。 2,我们还在skywalking设置了告警规则,特别是在项目上线以后,如果报错,我们分别设置了可以给相关负责人发短信和发邮件,第一时间知道项目的bug情况,第一时间修复

业务相关

限流

业务层方面

tomcat限流

nginx限流

Sentinel限流

系统机器方面

采用k8s资源限制,或者动态调控

算法显卡

令牌桶

适配大型的请求,最大请求

漏斗

匀速请求

Cap

C 一致性 用户访问分布式系统中的任意节点,得到的数据必须一致

vailability (可用性):用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝

Partition(分区):因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区。 Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务

分布式系统节点之间肯定是需要网络连接的,分区(P)是必然存在的

如果保证访问的高可用性(A),可以持续对外提供服务,但不能保证数据的强一致性--> AP

如果保证访问的数据强一致性(C),就要放弃高可用性 --> CP

Base理论

BASE理论是对CAP的一种解决思路,包含三个思想:

Basically Available (基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。

Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。

Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

分布式事务

MQ

Seata
Xa
AT模式
TCC
分布式事务

MQ模式实现分布式事务,在A服务写数据的时候,需要在同一个事务内发送消息到另外一个事务,异步,性能最好

需要保证MQ的可靠性

接口幂等

Redis解决

分布式锁

分布式任务调度

xxl-job任务执行失败怎么解决?

故障转移+失败重试,查看日志分析----> 邮件告警

如果有大数据量的任务同时都需要执行,怎么解决?

相关推荐
IT枫斗者6 小时前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
AI自动化工坊9 小时前
Late框架技术深度解析:5GB VRAM实现10倍AI编码效率的工程架构
人工智能·5g·架构·ai编程·late
AI攻城狮9 小时前
Hermes 下启动 Sub Agent 失败的痛苦教训
云原生
空中海9 小时前
第六篇:架构篇 — 微服务、部署、高并发与专家级能力
微服务·云原生·架构
Wave84510 小时前
基于 STM32 + ESP8266 + W25Q64 的双核 OTA 底层架构总结
stm32·嵌入式硬件·架构
yongyoudayee11 小时前
CRM架构演进:从记录系统到执行引擎的技术解析
架构
源码宝11 小时前
基于 SpringBoot + Vue 的医院随访系统:技术架构与功能实现
java·vue.js·spring boot·架构·源码·随访系统·随访管理
有马贵将12 小时前
【5】微前端知识点总结
前端·架构
ting945200012 小时前
深入解析 Social Fetch 机制:原理、架构、应用场景、实战落地与性能优化全攻略
人工智能·性能优化·架构
ZOOOOOOU12 小时前
云边端协同架构下,门禁权限引擎的离线决策与策略续存实现
大数据·人工智能·架构