
Java
文章平均质量分 77
不知所措的云
物来顺应,未来不迎,当时不杂,既过不恋
展开
-
消息队列RabbitMQ
在订单提交服务面对突发的订单请求时,如果后续的库存更新和支付处理服务处理不过来,消息队列可以暂时存储订单消息,避免系统因为负载过高而崩溃。后续的库存更新和支付处理服务可以按照自己的处理能力逐步消费消息队列中的订单消息,以平滑处理系统的高峰流量,保证系统的稳定性和可靠性。消费者处理消息的方式可以是同步或异步的,通常使用消费者来处理和执行从队列中接收到的消息。因为队列中的消息是排队处理的,如果使用在消息属性上设置 TTL 的方式,消息可能并不会按时“死亡“,因为 RabbitMQ 只会检查。原创 2024-02-29 18:21:21 · 906 阅读 · 0 评论 -
HashMap源码分析笔记
实际就是取模,hash%length,计算机中直接求余效率不如位移运算,源码中做了优化hash&(length-1)。当元素越来越多的时候,hashMap的查找速度就从O(1)升到O(n),导致链化严重。为了解决冲突带来的查询效率的下降,因此需要扩容。此时,哈希表的容量和扩容阈值都为0。其中,0.75是默认的负载因子。的哈希值进行扰动:高16位不变,低16位和高16位做异或运算,赋值给低16位。扩容后数组的长度是原来的2倍。链表的元素需要重新计算存放位置。哈希表的长度,没有分配内存时,长度为0。原创 2024-02-25 18:13:59 · 452 阅读 · 0 评论