java - 使用 Guava Cache 在多个服务实例上进行分布式缓存同步
问题描述
我在我的服务中使用Guava Cache来缓存数据库,并且我正在使用 REST 调用来使缓存内容无效/刷新。我的设置包含我的 10 个分布式实例的部署service
。
在多个实例的缓存之间保持同步的最佳实践是什么?理想情况下,如果我向 1 个实例发送缓存update
REST 调用,那么我希望它在其余 9 个实例上触发相同的调用。
我想避免使用远程缓存解决方案,以避免额外的 REST 调用和相关的网络延迟。
解决方案
如果您不想使用像Redis这样的分布式缓存系统,那么您正在查看的是在您的服务层中有另一个端点,它发送/接收来自另一个服务实例的 REST 调用(以及缓存值加上缓存元数据)作为一旦缓存失效(驱逐)或 TTL 刷新事件发生更新你的内存 Guava 缓存层。
推荐阅读
- c++ - 如果语句未在 SFML 中输出
- java - 尝试使用 MongoDB Java 驱动程序更新文档
- python - union() 如何组织集合值?
- c# - Azure Durable Functions 中的最大活动响应数据大小限制
- php - 如何从在 Laravel 中重定向的 url 下载文件?
- python - 基于玩家决策python的石头剪刀布电脑决策
- html - Vue.js 的新手需要帮助了解为什么条形图不会在第一个命令之后更新
- r - ggplot - 根据变量设置线条的颜色,数据中变量类型的存在发生变化
- apache-spark - 当它运行'Spark.sql'时,总是显示'WARN Hive: Failed to access Metastore。此类不应在运行时访问'
- python - 如何在 djangorest 中为基于函数的视图启用 cors 原点?