gpt4 book ai didi

java - memcache 无法在多个节点上运行

转载 作者:行者123 更新时间:2023-12-02 01:18:33 31 4
gpt4 key购买 nike

我有一个微服务,假设是“X”,其中我使用 spy 内存缓存实现了内存缓存(aws 节点)。现在我有一个依赖项,假设“Y”具有 spring 缓存(在内存中)实现。现在我有 2 个端点,有时两个端点请求都落在同一节点上,有时位于不同的节点上。第一个请求将把数据放入 memcache 中,第二个请求将尝试获取第一个端点存储的数据。这种情况工作正常,直到我将依赖项“Y”放入 pom 中,之后我的 memcache 实现仅在两个请求时才起作用落在同一个节点上,否则它总是缓存未命中。

我尝试创建单独的 memcahe 缓存管理器

@Bean("XYZ")
public CacheManager cacheManager() {
ExtendedSSMCacheManager ssmCacheManager = new ExtendedSSMCacheManager();

List<SSMCache> cacheList = new ArrayList<SSMCache>();

// First cache: A
SSMCache partnerCache = createNewCache(memcachedAddresses, "A", expiration);

// One more cache :B
SSMCache nonceCache = createNewCache(memcachedAddresses, "B", expiration);

cacheList.add(A);
cacheList.add(B);

// Adding cache list to cache manager
ssmCacheManager.setCaches(cacheList);

return ssmCacheManager;
}

最佳答案

也许你可以尝试使用 memcached-spring-boot库而不是拥有自己的缓存配置。它支持多个 memchached 服务器实例。例如。如果使用 AWS,则配置:

memcached.cache:
servers: mycluster.example.com:11211
mode: dynamic
expirations: 86400

您还可以查看演示应用程序 here这可以帮助您以类似的方式设置您的项目。

关于java - memcache 无法在多个节点上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58158501/

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