JVM 有一套很棒的工具来查找应用程序中的热点。 通过启用 JMX 并与 JProfiler / VisualVm 连接,我们可以很快找到工作流程中花费最多时间的方法。
但是,反应式应用程序(项目反应器)将我们的工作流程分割为可能接受随机线程的未命名任务。更重要的是,等待外部资源是以反应方式完成的,因此我们不会看到给定的访问阻止了我们的工作流程。
您对如何有效地分析反应式应用程序有什么想法吗? 我想避免在代码中插入一些探针并通过日志记录来完成。
Project Reactor 通过引入在冒泡错误时收集堆栈跟踪的代理解决了关闭堆栈跟踪的问题,因此我们可以看到错误发生时程序在哪里的完整图像。
剖析怎么样?尽管会发现本身需要一些时间的方法(例如迭代集合时的扇出),但涉及数据库或外部服务访问的最常见问题不会被发现。
寻求您的意见。 问候