![](https://csdnimg.cn/release/download_crawler_static/86383648/bga.jpg)
2.6Disruptor 核心-WaitStrategy 消费者等待策略
·BlockingWaitStartegy 是最低效的策略,但其对 CPU 的消耗最小,并且在各种
不同部署环境中能提供更加一致的性能表现;
·SleepingWaitStrategy 的性能跟 BlockingWaitStrategy 差不多,对 CPU 的消耗也
类似,但其对生产者线程的影响最小,适合用于异步日志类似的场景
·YieldingWaitStrategy 的性能是最好的,适合用于低延迟的系统。在要求极高性
能且事件处理线程数小于 CPU 逻辑核心数的场景中,推荐使用此策略;例如,CPU
开启超线程的特性;
2.7Disruptor-核心-Event、EventProcessor、EventHandler、WorkProcessor
(1)Disruptor-核心-Event
·Event:从生产者到消费者过程中所处理的数据单元;
·Disruptor 中没有代码标识 Event,因为它完全是由用户定义的
(2)Disruptor-核心-EventProcessor
·EventProcessor:主要事件循环,处理 Disruptor 中的 Event,拥有消费者的
Sequence;
·它有一个实现类 BatchEventProcessor,包含了 event loop 有效的实现,并且将
回调到一个 EventHandler 接口的实现对象;
(3)Disruptor-核心-EventHandler
·EventHandler:由用户实现并代表了 Disruptor 中的一个消费者的接口,也就是
我们的消费者逻辑都需要写在这里;
(4)Disruptor-核心-WorkProcessor
· WorkProcessor : 确 保 每 个 sequence 只被 一 个 processor 消费,在同一个
WorkPool 中处理多个 WorkProcessor 不会消费同样的 sequence;