使用多个LMAX Disruptor

时间:2013-08-01 13:03:35

标签: message-queue disruptor-pattern lmax

我是LMAX Disruptor的新用户,我正在探索将其用于需要处理大量流量的多层异步项目中。

请求被发送到平台以发送SMS,请求被清除/检查以查找简单错误并被记录。

获取并分析与发送SMS的客户相关的各种其他信息,并将其他参数添加到SMS信息中。

分析并选择正确的路由路由。然后从SMS-info中设置平台特定协议参数并将其提交给路由器。

像这样,将有接收和处理短信发送到记录,账单,重试和许多其他人的流程。在每个阶段,程序流中将同时或顺序执行。如果这是项目的高级视图,LMAX破坏者框架是否应该用于在各个模块之间进行通信(sms-info)?

如果是这样,需要创建多少个破坏者的righbuffer?

如果我的理解是正确的,是否在不同的每个层/功能之间创建了新的ringbuffers?

可以将POJO对象写入环形缓冲区吗? 如何将其应用于聚集的环境? 虽然我阅读了一些文档并且在这个框架上看过一些视频,但我无法使用这个框架可视化解决方案。

任何指南/示例/视觉图表/文档或您对此的想法都会对我有所帮助。

1 个答案:

答案 0 :(得分:2)

我们使用了disruptor,并将其用作库,以实现高性能,可配置的并行执行流程。

在给定的场景中,我看到的是两个环形缓冲区配置。一个用于发送SMS,另一个用于接收SMS。

如果需要更复杂的配置,您还可以在发送方或接收方级联环形缓冲区。

SMS发送环缓冲区配置可以有一个事件阶段流程 enter image description here 类似地,接收部分也可以具有阶段配置。

关于POJO的问题。环形缓冲区具有事件桶的概念,其中POJO可以作为有效负载进行处理,事件转换器可用于填充事件桶。