Redis,Kafka,ActiveMQ,RabbitMQ, JVM, lMax Disruptor 等实现的队列进行对比 -- lMax篇

本文对比了Redis、Kafka、ActiveMQ、RabbitMQ等消息中间件,并深入探讨了lMax Disruptor在高并发场景下的优势。通过实例展示了Disruptor如何用于订单下单队列,强调其性能和独特的数据结构,如ringBuffer,以及在L1缓存中的高效操作。同时,文章提到了Disruptor在实际电商项目中的应用,如分布式锁和限流策略。
摘要由CSDN通过智能技术生成

前言

前几节提到的队列的实现都是基于并发量不是特别大的场景,而且需要消息消费的数据数据达到最终一致性做了折中的处理,而本节针对超高并发量的场景下使用lMax,这节就重点提及disruptor的使用,以及从各大厂对disruptor的使用情况,简单的介绍disruptor的文章。文中介绍了disruptor的性能,以及特有的数据结构,分析了缓存的三种级别,分别对那种情况下能使用到最高速的L1缓存做了处理,使用到了ringBuffer来实现占据8个字节的mainMemory实现数据在L1缓存处理。如果想从源码角度分析发现disruptor的设计思想可以从这里得到一系列的参考

本节从实际项目中的代码来介绍disruptor的使用,目前电商项目里面使用的redis能实现的分布式锁,以及redis实现了guava的限流令牌桶算法,而disruptor主要就是基于强大的性能实现订单的下单队列的业务逻辑,这里大致的架构图后续有时间补上。

初始化disruptor工具类


import java.util.concurrent.ThreadFactory;

import com.lmax.disruptor.RingBuffer;
import com.lmax.disruptor.dsl.Disruptor;
/**
 *这个类实现了disruptor初始化
 */
public class DisruptorUtil {
	
	static Disruptor<SeckillEvent> disruptor = null;
	static{
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值