我们正在使用 API 中的 vertx.eventBus().publish() 方法进行 GET 、 POST 、 PATCH 、 PUT 调用。这种方法消费者只是将数据推送到缓存[我们正在使用 HazleCast 缓存]。所以这个消费者被所有的API调用[高度限制]
在 perf testing 下运行它时,这会导致 Vertx 出现线程延迟问题,我们注意到这一点,因为当时 CPU 也越来越高。这会发生几秒钟,然后一切都恢复正常状态,然后在一段时间后再次发生。
经过调查,这种方法[即vertx发布事件的消费者方法]显示为瓶颈,并在此间歇性峰值期间显示出最长的耗时方法。
阅读大量文档后,我发现如下。
在内部,Vert.x 让 Netty 安排另一个对消费者的调用,直到当前调用(以及在 Netty 事件循环中安排在它前面的任何其他方法)完成之前,它才会运行。
您能否就此提出建议,看起来 vertx.eventBus().publish 方法不应该用于在同一应用程序中使用它,这不是一个好方法。