Spring Boot 在Sping Boot 3.0.0中,使用HttpExchangeRepository将HttpExchange对象保存在关系数据库中

vq8itlhq  于 2023-02-08  发布在  Spring
关注(0)|答案(1)|浏览(392)

在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

4zcjmb1e

4zcjmb1e1#

我引用Spring文档:
您可以通过在应用程序配置中提供HttpExchangeRepository类型的bean来启用HTTP交换的记录。为了方便起见,Sping Boot 提供了InMemoryHttpExchangeRepository,默认情况下,它存储最近100次请求-响应交换。与跟踪解决方案相比,InMemoryHttpExchangeRepository受到限制,我们建议仅将其用于开发环境。对于生产环境,我们建议使用生产就绪的跟踪或可观察性解决方案,如Zipkin或OpenTelemetry。或者,您可以创建自己的HttpExchangeRepository。您可以使用httpexchanges终结点获取有关存储在HttpExchangeRepository中的请求-响应交换的信息。
因此,HttpExchangeRepository并不意味着要手动持久化到数据库上(除非您希望实现自己的跟踪系统,但也有开源系统可用)。
为了处理保存和使用http交换的负担,您应该使用以下之一:ZipkinOpenTelemetryJaegerWaveFront或其他...

相关问题