熔断
三种状态 关闭:失败的次数低于阀值 开启:一定时间内,请求快速失败返回,或采用备用链路处理 半开启:熔断器尝试接受一部分请求,若还是请求还是失败,则恢复到开启状态 一些参数 错误比例阀值:达到阀值则进入开启状态 开启状态超时时间:超过后该时间后进入半开启状态 半开启状态允许请求数量: 窗口时间大小: 参考 一文讲透自适应熔断的原理和实现...
三种状态 关闭:失败的次数低于阀值 开启:一定时间内,请求快速失败返回,或采用备用链路处理 半开启:熔断器尝试接受一部分请求,若还是请求还是失败,则恢复到开启状态 一些参数 错误比例阀值:达到阀值则进入开启状态 开启状态超时时间:超过后该时间后进入半开启状态 半开启状态允许请求数量: 窗口时间大小: 参考 一文讲透自适应熔断的原理和实现...
死锁四大条件 互斥条件:资源在一个时间段内只能为一个进程使用,其他进程阻塞等待 保持与请求条件:进程在保持占有一个资源,又请求新资源 不可剥夺条件:进程占用的资源只能由该进程释放 循环等待条件:多个进程形成循环等待资源释放 死锁处理方式(根据死锁产生的前中后) 预防死锁 破坏死锁产生条件 避免死锁 银行家算法 加锁顺序 加锁时限 检测死锁 ...
异常进程 孤儿进程: 父进程退出,子进程仍在运行,子进程成了孤儿进程 孤儿进程由init进程接管 僵尸进程: 子进程退出,父进程没有wait或waitpid,子进程描述还存在进程中,这个子进程就成了僵尸进程 并发、并行 并发:一个CPU通过时间片轮询去调度多个程序,CPU同一时刻只能...
分布式事务解决方案 2PC 第一阶段:事务管理器要求涉及到的数据库预提交(precommit),数据库并反馈是可以提交 第二阶段:事务管理器要求涉及数据库提交,或者回滚 缺点 - 单点问题:事务管理器扮演者重要角色,如果宕机,将导致分布式事务不可用 - 同步阻塞:事务管理器在通知涉及数据库precommit后,处于阻塞状态,直到提交事务 - 数据不一致:若第二阶段,某数...
Set [key] [value] ex [xx] nx 简单业务中使用 存在锁续期问题 单机Redis实现:Redisson 概述 基于lua脚本,原子性 Redis官方推荐 加锁机制 判断是否存在锁 若无则hincrby myLock 285475da-...
errgroup 使用 package main import ( "context" "fmt" "time" "golang.org/x/sync/errgroup" ) func main() { group, _ := errgroup.WithConte...
查看内存使用情况 top、htop 查看CPU使用情况 top、htop systemctl status查看service不断重启 原因 服务发生Panic 解决 journalctl -xe | grep ${service} journalctl -u ${service} -r 文档:https://wangchujiang.com/linux-command/c...
gRPC 是Google开源的RPC框架 基于HTTP/2标准设计 帧:数据通讯的最小单位 流:二进制编码流传输,http1.1文本传输 多路复用:同一个域名,只占用一个tcp连接 服务端主动推: 通过protobuf来定义接口,数据被序列化成二进制编码传输,提高效率 有四种调用方式:一元调用、服务...
内存管理-内存分配 分配器 线性分配器 定义:当用户程序需要申请内存时,从指针所在的位置开始分配内存,并向后移动指针。 局限性:分配速度快;指针前面的释放的内存块不能重用,...
参考:https://blog.csdn.net/xingfeng0501/article/details/7816703 1、left join on and on后面接生成临时表的条件,保全左表的记录,右边不符合条件的为null 2、left join on where 按照on条件连表后,用where条件过滤 例子: table1: id size 1 10 2 20 3 ...