【问题标题】:Using multiple LMAX Disruptor使用多个 LMAX Disruptor
【发布时间】:2013-08-01 13:03:34
【问题描述】:

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

向平台发送一个发送 SMS 的请求,该请求被清理/检查是否存在简单错误并被记录下来。

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

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

这样就会有接收和处理 SMS 传送以记录、计费、重试和许多其他的流程。在每个阶段,程序流程中都会有并发或顺序执行。如果这是项目的高级视图,是否应使用 LMAX 破坏者框架在各个模块之间进行通信(短信信息)?

如果需要,需要创建多少中断器的右缓冲区?

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

可以将 POJO 对象写入 ringbuffer 吗? 如何将其应用于集群环境? 尽管我阅读了一些文档并看过一些有关此框架的视频,但我无法使用此框架可视化解决方案。

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

【问题讨论】:

    标签: message-queue disruptor-pattern lmax


    【解决方案1】:

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

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

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

    SMS 发送环形缓冲区配置可以有一个事件阶段流程,如 同样接收部分也可以有一个stage配置。

    关于您关于 POJO 的问题。环形缓冲区有Event bucket的概念,POJO可以作为payload进行处理,Event翻译器可以用来填充Event bucket。

    【讨论】:

    猜你喜欢
    • 2013-12-21
    • 2013-11-23
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 2018-09-02
    相关资源
    最近更新 更多