java - 是否有一些功能可以记录/计算 spring weblfux 中模块的时间延迟?例如使用@Timed 注释
问题描述
我想知道是否存在,或者我们可以使用任何功能来记录返回 Mono/Flux 的函数所花费的实际时间?例如,创建一个 @Timed 注释来记录它所花费的实际时间。我知道函数返回类型是 Flux/Mono,所以它应该立即返回,这就是为什么我想知道我们是否真的可以做这样的事情,以便我们知道哪些模块/子模块需要多少时间?
我们想将我们的阻塞 spring-boot 服务迁移到 spring webflux,因此通过我们拥有的所有可能的选项来更好地理解。
PS我是反应式编程的新手,仍在学习范式。
解决方案
您可以使用metrics()
运算符为发布者计时。您可以将其与name()
andtags()
运算符结合使用来自定义发布的指标。
listenToEvents()
.name("events")
.tag("source", "kafka")
.metrics()
.doOnNext(event -> log.info("Received {}", event))
.delayUntil(this::processEvent)
.subscribe();
推荐阅读
- angular - 角度过滤表结果无法正常工作
- javascript - 如何在使用 Lodash 时获取特定的键值
- typescript - React Native 中的 ReturnKeyType 数据类型
- android - 调整对象的大小以适应屏幕的大小
- python - “str”对象没有属性“map”
- python - 如何检查我训练的模型是否通过编码正确检测到对象?
- python - 如何提取 30 秒后加载的重定向链接?
- jquery - 在asp.net核心的菜单中添加活动类?
- c++ - 哈希
, 较少的 功能:模板参数后的空括号 - ruby - 如何使用流控制来请求用户输入一个整数而不是字符串