DevilKing's blog

冷灯看剑,剑上几分功名?炉香无需计苍生,纵一穿烟逝,万丈云埋,孤阳还照古陵

0%

今日阅读列表

Huffman

  • 有权的二叉树
  • 自底向上的堆
  • 不会存在某个编码是另个编码的前缀
  • 用于压缩部分效果尤佳

Huffman

延迟队列

订单类系统,用户创建后一段时间没有付款,需要讲该订单关闭掉,同时把库存还原回去

mongodb做队列,由于mongodb有一个叫做findAndModify的操作。操作为原子性,即,你可以修改一条记录的同时把老的记录返回。

同时可以考虑java的延迟队列的实现

java.util.concurrent.DelayQueue

同时:

一些总结:能不用锁的地方一定不要用锁,锁会把你的性能耗尽。能不用分布式锁的地方一定不要用,如果你的系统需要使用分布式锁,可以想想有没有其他的简单粗暴的方案,也许会有更好的搜获。分布式系统的一个特点是高并发,如果架上了分布式锁,很可能让你的系统变成了串行处理的系统了,这样就违背分布式系统的初衷了。

activeMq

activeMq消费消息时网络流程异常大

主要的矛盾点在于:mq的prefetch机制,以及jmsTemplate的每次new consumer的机制的冲突

解决方案:

  • 禁用prefetch

带来的后果,每次jmsTemplate的receive创建,造成资源浪费

  • 不使用jmsTemplate

自己单独创建cosumer,并单线程反复来使用进行receive。要避免,多线程使用一个consumer造成的消息混乱。这块,自身可以采用延迟队列的方式来进行?