【问题标题】:Java + Micrometer @Timed annotation + Spring reactive @Repository possible?Java + Micrometer @Timed 注解 + Spring 反应式 @Repository 可能吗?
【发布时间】:2020-12-14 08:06:20
【问题描述】:

关于 Micrometer 的 @Timed 注释的小问题,以及如何将它与 Spring 的 reactive @Repository 一起使用。

我有一个非常简单的@Repository 界面,甚至没有自定义查询。

@Repository
public interface MyRepository extends ReactiveCassandraRepository<MyPojo, String> {

这里的例子是反应式 Cassandra,但任何 反应式 存储库都可以。

我想为默认方法的执行计时,save、findById、findAll,基本上是@Repository 提供的所有简单方法。

时间是指插入数据或检索数据所用的实际时间。

(这对于查看一段时间内、高负载下的读写性能等特别有用...)

因此,我满怀希望地尝试了:

@Repository
@Timed("mysupertimer")
public interface MyRepository extends ReactiveCassandraRepository<MyPojo, String> {

但遗憾的是,它不起作用。 只是为了避免混淆,它不适用于存储库方法。 我的@Controller 层中有@Timed,@Service 层的不同位置,我看到所有其他指标都很好。

另外,我真的希望得到一个关于注释@Repository 的答案。我知道我可以 @Timed “我项目中的所有地方都调用存储库”,但是我有 300 次调用存储库,需要向任何未来的贡献者解释以注释他的调用。

直接在@Repository 层上的解决方案会很棒。

非常感谢!

【问题讨论】:

  • 我不知道这是否可能。但我认为你想要达到的目标是无关紧要的。因为您希望它会为您调用 cassandra 所花费的时间创建指标。但是您使用的是反应式存储库。它将监控装配时间spring.io/blog/2019/03/06/…
  • 我也不知道,这就是我问这个问题的原因!当然,我正在寻找一种解决方案,其中“它将为您调用 cassandra 需要多长时间创建度量标准”。我知道它在响应式世界中是不同的(因此问题是,让它与 MVC 一起工作)。对于入站请求,它已经在 @Controller 层上实现了。我的问题只是数据库调用的技术问题。希望有人给出答案!

标签: java spring-webflux micrometer


【解决方案1】:
猜你喜欢
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多