在spring Boot actuator中,我使用InMemoryHttpExchangeRepository
来跟踪http请求。
@Configuration
public class ActuatorConfiguration {
@Bean
public HttpExchangeRepository httpTraceRepository()
{
InMemoryHttpExchangeRepository repository = new InMemoryHttpExchangeRepository();
repository.setCapacity(1000);
return repository;
}
}
我可以使用HttpExchangeRepository
在关系数据库(MySQL,PostgreSQL等)中持久化HttpExchange对象吗?我想使用Spring jdbc或Spring Data JPA。
我使用的是Sping Boot 3.0.2
1条答案
按热度按时间4zcjmb1e1#
我引用Spring文档:
您可以通过在应用程序配置中提供HttpExchangeRepository类型的bean来启用HTTP交换的记录。为了方便起见,Sping Boot 提供了InMemoryHttpExchangeRepository,默认情况下,它存储最近100次请求-响应交换。与跟踪解决方案相比,InMemoryHttpExchangeRepository受到限制,我们建议仅将其用于开发环境。对于生产环境,我们建议使用生产就绪的跟踪或可观察性解决方案,如Zipkin或OpenTelemetry。或者,您可以创建自己的HttpExchangeRepository。您可以使用httpexchanges终结点获取有关存储在HttpExchangeRepository中的请求-响应交换的信息。
因此,HttpExchangeRepository并不意味着要手动持久化到数据库上(除非您希望实现自己的跟踪系统,但也有开源系统可用)。
为了处理保存和使用http交换的负担,您应该使用以下之一:Zipkin、OpenTelemetry、Jaeger、WaveFront或其他...