gpt4 book ai didi

java - 当 Redis 连接出现问题时,在 Hibernate 中熔断 L2 缓存

转载 作者:行者123 更新时间:2023-12-02 09:34:13 27 4
gpt4 key购买 nike

我使用 redisson-hibernate 作为 Hibernate 二级缓存提供程序。如果redis服务器不可用,当应用程序正在运行时,整个应用程序就会宕机。我正在尝试找到一种方法来在这种情况下熔断二级缓存。

如果 redis 不可用,hibernate 应该像 L2 被禁用一样工作,并且应该有某种机制(或后续请求),应该在指定的 L2 量之后检查 redis 可用性,并重新启用 L2。已经有办法做到这一点了吗?

如果没有,如何建立这样的机制?我可以尝试运行一个quartz作业,它检查redis连接,通过修改应用程序配置来终止并重新启动应用程序。但这种方法很复杂,而且不太干净。请提出建议。

最佳答案

我尝试过您在 SPRING BOOT 应用程序中提到的场景,当我关闭 Redis 时,所有请求(HTTP)开始堆积。但是,当我重新启动 Redis 时,应用程序能够重新连接并照常处理。

Hibernate 和 Redis 连接根据“application.properties”文件中的可用配置加载。

spring.jpa.properties.hibernate.cache.auto_evict_collection_cache=false
spring.jpa.properties.hibernate.generate_statistics=false
spring.jpa.properties.hibernate.cache.use_second_level_cache=true
spring.jpa.properties.hibernate.cache.use_query_cache=true
spring.jpa.properties.hibernate.javax.cache.missing_cache_strategy=create
spring.jpa.properties.hibernate.cache.redisson.config=redisson.json
spring.jpa.properties.javax.persistence.sharedCache.mode=ENABLE_SELECTIVE

我在 Hibernate 或 Spring 文档中找不到任何可以自动检测 L2 何时关闭的 Hibernate/Spring JPA 参数。

我也热切地等待 Hibernate/Spring JPA 中的此类机制,因为这个场景是有效的测试用例,我们肯定会在 LOAD/PROD 环境中主要面对它。

关于java - 当 Redis 连接出现问题时,在 Hibernate 中熔断 L2 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57676155/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com