我在上一篇文章中介绍的一些理论知识已经实现了一个简单的知识,并意识到了高性能的ringbuffer.LET的分析并使用一些简单的用途。作者。在雨中,雪花算法使用环形的缓存问题避免了轮子。
破坏者是英国外汇交易公司LMAX开发的高性能队列。研发的最初意图是解决记忆队列的延迟(在性能测试中发现它与I/O操作相同的水平)。基于颠覆者开发的单个线程系统可以支持600万个订单第二。在2010年在QCON发表讲话后,它引起了行业的关注。在2011年,企业应用程序软件专家马丁·福勒(Martin Fowler)撰写了一篇很长的文章。同年,它还赢得了Oracle官方奖。
目前,包括Apache Storm,Camel和Log4J2在内的许多知名项目都使用了Disruptor,这也说明了干扰器的高可用性和高质量。
Disruptor是一个提供并发缓冲区数据库的库。它的目的是在异步事件的处理结构中提供低序列和高吞吐量工作队列。
2.1核心概念示意图如下:
Maven依赖性简介:
3.1消费和生产
然后构建事件事件:
定义消息处理器:
写一个启动类:
操作结果:
多制造商和单一生产商的性能比较(图片来自官方网站):
在官方网站上还比较了java.util.concurrent.arrayblockingquequequequequequequequequequequequequeque.concurrent.concurrent.concurrent.ary.concurrent.producer and Optumpty模型如下(官方网站的图):
两者的比较图表:
从上图可以看出,破坏者的性能高于ABQ。
延迟性能:
官方网站的项目和破坏者的使用提供了大量的性能改进。
我是蚂蚁和大象?如果您在文章中有不正确的位置,请留言发表评论?谢谢?
参考文档:
原始:https://juejin.cn/post/7102686333264461832