1

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

可以通过处理响应阶段的第二个环形缓冲区来完成吗?如果是这样,我该怎么做。

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

  • 阅读入站消息,解组请求
  • 确定请求的客户详细信息,确定要处理的工作流程步骤
  • 调用后端系统执行步骤
  • 整理响应、记录响应、编组并返回给消费者

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

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

我可以看到 Disruptor 具有潜在的高效性,但无法绕过这个障碍来降低平均延迟。

4

0 回答 0