vert.x eventloop从eventbus消耗缓慢

时间:2018-12-21 07:00:00

标签: java vert.x vertx-verticle vertx-eventbus

我们正在轮询来自kafka的消息(使用执行器线程),并将其放在vert.x eventbus上。最终,非工作人员的顶点消耗了事件总线中的消息。

我们测量到,从vertx eventbus发送到每条消息后,消耗每条消息所需的时间在峰值时可能达到4秒。

出于某种原因,事件总线有时需要花费很长时间才能消耗消息,但在我们无法确定延迟时间之前,不会显示线程块错误

奇怪的是,我们没有看到任何事件循环阻止警告。我们还能做什么? cpu / ram都很好。唯一可以实际显示某些内容的指标是:

enter image description here

但是它什么也没告诉我们(不知道如何将事件总线处理程序与事件循环延迟相关联)

我们应该检查些什么,以了解是什么使vert.x eventbus的eventloop消耗变慢?

1 个答案:

答案 0 :(得分:0)

您应该尝试测量时间轴上通过事件总线发送的数据量,以及通过同一事件总线在每个顶点上接收的数据量。这可能会突出显示瓶颈问题。

也许您应该看看vertx-dropwizard-metrics project提供的jmx指标。能够计算出这些时间表非常有用。

例如,您可能会对glowroot这样的Java APM感兴趣,以便更好地了解问题所在。