具有可变持续时间“业务逻辑”的干扰模式

时间:2012-04-29 22:43:45

标签: multithreading performance latency low-latency disruptor-pattern

如何在有可变持续时间“业务逻辑”任务的流程中有效地使用破坏程序?以前做过吗?

可以使用第二个环形缓冲区处理响应阶段吗?如果是这样,我该怎么做呢。

我理解Disruptor并看到我的调用链的一些特定部分,我可以应用这个概念。具体而言,该应用程序是一个中间件类型的应用程序,它执行以下步骤:

  • 读取入站邮件,取消联系以请求
  • 识别客户的请求详情,确定要处理的工作流程
  • 调用后端系统执行步骤
  • 整理回复,记录回复,马歇尔和回归消费者

问题是后端步骤的某些实例可能需要“很长”时间,这可能会迫使短期运行任务的响应阶段等待更长时间运行的任务。假设后端系统的调用可以是异步或同步 - 所以想法是后端系统调用只是一个触发异步请求后端的消费者。

后端系统响应时间可以是5毫秒(某些请求),50毫秒(90%的请求)到-5000毫秒(1%的请求)(想想大磁盘I / O)。

我可以看到Disruptor具有潜在的高效率,但却无法控制这个障碍以保持平均延迟。

0 个答案:

没有答案