Distruptor中线程中消息之间的依赖关系

时间:2015-11-13 12:02:33

标签: java multithreading performance circular-buffer disruptor-pattern

我们在 Disruptor 中有一个场景,其中有多个消费者(比方说2个)和多个生产者(比如3个),两者之间有 RingBuffer Producers-RingBuffers-Consumers

消费者读取和写入数据库并且速度稍慢。一些消息彼此依赖(例如#10依赖于#4)并且可以由不同的生产者生成。在#4完成之前,消费者1或消费者2不应处理#10。使用RingBuffer,如何处理?我们显然想避免锁定。

  1. 在将此消息发送到RingBuffer之前,生产者(P1)是否应该等待相关消息被提取?这可以在不使用锁的情况下实现吗?
  2. 该消息应该是"批次"?有没有办法做到这一点?
  3. 使用Disruptor是否有更好的方法?
  4. 这个用例适合Distruptor模式吗?有人可以帮我举个例子吗?

0 个答案:

没有答案