青训营X豆包MarsCode 技术训练营第四课 | 豆包MarsCode AI 刷题

70 阅读3分钟

RPC关键指标分析与企业实践

稳定性保障策略:

熔断:假设A调用B,B调用C,C发生故障,返回给B的时间超时,导致A不断地去调用B,进程里不断的堆积B,导致进程堵塞,所以使用熔断的措施

限流:保护被调用方,防止流量把服务压垮

超时控制:避免浪费资源在不可用的节点上

请求成功率:

负载均衡:让请求合理分配,不让单个服务器,压力过大

重试:一次请求失败后,多次发送请求

长尾请求:

什么是长尾请求?

就是响应时间明显高于平均请求时间的请求

普通请求在发送超时的时候才会重新发送,长尾请求发送之后,会缩短响应时间,超过这个时间会直接发送第二个请求,就不会等第一个请求回来了

易用性:

开箱即用:

合理的默认参数选择,丰富的文档

周边工具:

生成代码工具,脚手架工具

观测性:

Log,Metric,Tracing

内置观测性服务

就是可以观测到内置观测服务,可以看到框架内部的运行状况

高性能:

可以从多个层面去优化:高性能的代码,或者更好的网络协议

认识储存与数据库

数据库怎么保证数据不丢?

数据库怎么处理多人同时修改的问题?

为什么用数据库,除了数据库还能存储到别的存储系统么?

数据库只能处理结构化数据么?

有哪些操作方式,要用什么编程语言?

存储系统:一个提供了读写,控制类接口,能够安全有效的把数据持久化的软件,就可以称为存储系统

存储系统的特点

作为后端软件的底座,性能敏感

存储系统软件架构,容易受硬件影响

存储系统代码,既简单,又复杂

路径不能复杂,但是考虑的情况应该复杂

RAID系统

RAID0

单机存储系统怎么做到高性能?

多块磁盘简单组合

数据条带化存储,提高磁盘带宽

没有额外的容错设计

RAID1

一块磁盘对应一块外镜磁盘

真实空间利用率仅50%

容错能力强

RAID 0 + 1

结合了RAID0 和RAID1

真实空间利用率仅

容错能力强,写入带宽好

数据库和存储系统不一样么?

关系是什么?

关系就是反应实体之间的联系

SQL就是人操作关系的语言

关系型数据库是存储系统,但是在存储系统之外,还有其他功能

  • 结构化数据库
  • 支持事务
  • 支持复杂查询语言

非关系型数据库也是存储系统,但是一般不要求严格的结构化

半结构化数据

可能支持事务