Huffman
- 有权的二叉树
- 自底向上的堆
- 不会存在某个编码是另个编码的前缀
- 用于压缩部分效果尤佳
延迟队列
订单类系统,用户创建后一段时间没有付款,需要讲该订单关闭掉,同时把库存还原回去
mongodb做队列,由于mongodb有一个叫做findAndModify
的操作。操作为原子性,即,你可以修改一条记录的同时把老的记录返回。
同时可以考虑java的延迟队列的实现
java.util.concurrent.DelayQueue
同时:
一些总结:能不用锁的地方一定不要用锁,锁会把你的性能耗尽。能不用分布式锁的地方一定不要用,如果你的系统需要使用分布式锁,可以想想有没有其他的简单粗暴的方案,也许会有更好的搜获。分布式系统的一个特点是高并发,如果架上了分布式锁,很可能让你的系统变成了串行处理的系统了,这样就违背分布式系统的初衷了。
activeMq
主要的矛盾点在于:mq的prefetch机制,以及jmsTemplate的每次new consumer的机制的冲突
解决方案:
- 禁用prefetch
带来的后果,每次jmsTemplate的receive创建,造成资源浪费
- 不使用jmsTemplate
自己单独创建cosumer,并单线程反复来使用进行receive。要避免,多线程使用一个consumer造成的消息混乱。这块,自身可以采用延迟队列的方式来进行?