当前位置: 首页 > 知识库问答 >
问题:

Quarkus缓存和度量工作正常,但并不真正有效

慕宏峻
2023-03-14

我想要什么?使用缓存和度量

为什么?

  • 更快的响应
  • 一些度量数据可以用来评估以下内容:总点击率、平均持续时间、最小持续时间、最大持续时间。。。等等

我试过:

@CacheResult
<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-cache</artifactId>
</dependency>

@SimplyTimed
<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-smallrye-metrics</artifactId>
</dependency>

应用这两种方法:

@GET
@CacheResult(cacheName = "someData")
@SimplyTimed
@Produces(MediaType.APPLICATION_JSON)
public List<String> getSome() {
  return ... some data;
}

两者都按预期工作(第一次通话)...甜蜜!

问题是,因为缓存只在第一次调用时运行该方法,后续调用直接通过缓存处理,并且不再记录度量。

我知道quarkus缓存扩展仍在预览中。据我所知,微文件与缓存无关。

是的。。。

“千分尺是Quarkus度量的推荐方法。当需要保留微文件规范兼容性时,请使用SmallRye metrics扩展。”

在这一点上,我没有通过千分尺找到任何客观/优雅的解决方案。从我到目前为止所看到的,我将不得不放弃Quarkus缓存和Quarkus小黑麦指标,手动使用咖啡因和千分尺指标。

这就引出了一个问题:quarkus缓存是否有可能让度量记录工作开箱即用,无论是注释quarkus smallrye度量还是任何其他注释度量框架都是一样的?

如前所述,夸克缓存和夸克小黑麦指标的约束“看起来”是相互排斥的。我知道这是一个艰难的决定。请对我宽容一点,好吗?

共有1个答案

明松
2023-03-14

由于这些库的代码生成发生在构建时,所以有时使用注释的顺序很重要,甚至在极少数情况下,比如lombok,依赖项的顺序也很重要。

因此,作为一个粗略的猜测,首先尝试添加指标可能是值得的:

@GET
@SimplyTimed //<-------------------------------/ like this
@CacheResult(cacheName = "someData") //<------/
@Produces(MediaType.APPLICATION_JSON)
public List<String> getSome() {
  return ... some data;
}
 类似资料:
  • 服务器向我发送json对象、过期和ETAG。我希望Voley将这个对象保存在缓存中,并在下一次请求该对象时使用对服务器的请求,包括在报头中的ETag。如果响应将是304不修改,那么它应该使用缓存的资源,如果它将是200OK,它应该使用来自服务器的新资源。 Volley根本不发送请求(如果缓存未过期),或者如果缓存过期,则发送带有If-None-Match+etag字符串的新请求。并且服务器总是以2

  • 我是Spring云和Spring后端开发的新手。我正在尝试用SpringCloudGateway开发一个简单的微服务。 Github链接到Discovery Server、Spring Cloud Api网关和用户微服务。令人惊讶的是,当我在Postman中执行API时,GET API起作用,但POST却不起作用。 我试着调试,但它并没有传到我的控制器上。我错过了什么?还是做错了?任何帮助或建议都

  • 我使用了绝对定位(setBounds和null布局),现在开始练习布局管理器,这段代码是用gridbag布局的,但是很少组件没有显示,或者是单元格有一些问题,或者是其他的东西,请帮助!

  • 我试图创建一个基于警报的应用程序。我正在使用。问题是这一点都不可靠。在某些设备中,它起作用…在其他设备中,它的工作方式…而在其他设备中,它根本不起作用。 这是我的闹钟课: 这是我的OneTimeAlarm,只发射一次就不再发射的警报。 这是我的日常警报器,警报器一天只响一次。

  • 我正在使用ora2pg将我的数据从oracle迁移到postgres数据库。作为第一步,我要导出模式。我发现生成的sql文件有许多错误,如重复的sql语句,函数中的重复参数,这些错误在执行sql时失败。我正在尝试手动更正生成的sql文件中的这些错误。是否有更好的方法或避免sql文件中的此错误。实际上,我只需要将数据从oracle传输到postgres数据库。但不知道这是否可能。我使用的是ORA2P

  • 我试图运行一个读取环境变量的应用程序,该环境变量包含大约22K个字符的JSON。项目设置告诉我使用来正确配置它,但是当我使用windows时,这些命令不起作用。 我尝试使用GUI环境变量将文件的内容复制到变量中,但是它的输入会将值截断到一定的限制,这个限制甚至不到文件的一半。在此之后,我尝试使用Powershell和以下命令设置变量: 然后用以下命令保存结果: