02 2023 档案
摘要:先看一下自己利用setnx写的简易分布式锁,有四个问题, 1,不可重入 2,不可重试 3,超时自动释放(如果业务阻塞了,就算代码没执行完也会释放锁) 4,集群模式下怎么办? @Override public boolean tryLock(long timeoutSec) { // 获取线程标示 S
阅读全文
摘要:内存淘汰:就是当redis内存达到设置的阈值时,主动挑选部分key删除以释放内存 可以分为两个问题: 1,redis什么时候去检查内存够还是不够? 2,怎么来决定删除哪些key?(淘汰策略) 1,如果配置了内存上限,redis在任何命令执行之前都会进行内存的检查,如果内存不够的话执行淘汰策略 int
阅读全文
摘要:IO多路复用 无论是阻塞l0还是非阻塞lO,用户应用在一阶段都需要调用recvfrom来获取数据,差别在于无数据时的处理方案: *如果调用recvfrom时,恰好没有数据,阻塞IO会使进程阻塞,非阻塞IlO使CPU空转,都不能充分发挥CPU的作用。 *如果调用recvfrom时,恰好有数据,则用户进
阅读全文
摘要:1、 消费端限流 Consumer限流机制: 1,确保ack机制为手动确认。 2,配置prefeteh参数,每次拉取多少消息,根据自己系统能承受的最大值来定。 读取消息—>手动确认消息—>才能再拉取消息 2、超时配置 TTL TTL全程 time to live 当消息到达存活时间后,还没有被消费,
阅读全文
摘要:rabbitmq整个消息投递的路径为: produce > rabbitmq broker > exchange > queue > consumer 1.1 生产端可靠性 在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控
阅读全文
摘要:一、Ribbon ribbon负载均衡策略 配置方法: 1, 代码方式: 配置的是当前服务调用其他服务的负载均衡规则(不能指定具体调用哪个服务器的规则)。修改时需要重新打包发布 @Bean public Irule randomRule(){ return new RandomRule(); } 2
阅读全文
摘要:参考https://www.cnblogs.com/ataoxz/articles/16777040.html
阅读全文