Java memcache在多个节点上不工作

Java memcache在多个节点上不工作,java,spring-boot,caching,spymemcached,Java,Spring Boot,Caching,Spymemcached,我有一个微型服务,比如说“X”,其中我使用spy Memcache实现了Memcache(aws节点)。现在我有一个依赖项,比如说“Y”,它有spring缓存(内存中)实现。现在我有两个端点,有时两个端点请求都在同一个节点上,有时在不同的节点上。第一个请求将把数据放在memcache中,第二个请求将尝试获取第一个端点存储的数据。在我将依赖项“Y”放在pom中之前,此方案工作正常。之后,我的memcache实现仅在两个请求都到达同一节点时才起作用,否则它总是缓存未命中 我试图创建单独的memcah

我有一个微型服务,比如说“X”,其中我使用spy Memcache实现了Memcache(aws节点)。现在我有一个依赖项,比如说“Y”,它有spring缓存(内存中)实现。现在我有两个端点,有时两个端点请求都在同一个节点上,有时在不同的节点上。第一个请求将把数据放在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;
}
@Bean(“XYZ”)
公共缓存管理器缓存管理器(){
ExtendedSSMCacheManager-ssmCacheManager=新的ExtendedSSMCacheManager();
List cacheList=new ArrayList();
//第一缓存:A
SSMCache partnerCache=createNewCache(memcachedAddresses,“A”,过期);
//还有一个缓存:B
SSMCache nonecache=createNewCache(memcachedAddresses,“B”,过期);
缓存列表。添加(A);
缓存列表。添加(B);
//将缓存列表添加到缓存管理器
ssmCacheManager.setCaches(缓存列表);
返回ssmCacheManager;
}
也许您可以尝试使用库而不是拥有自己的缓存配置。它支持多个memchached服务器实例。例如,使用AWS时的配置:

memcached.cache:
    servers: mycluster.example.com:11211
    mode: dynamic
    expirations: 86400
您还可以检查一个演示应用程序,它可以帮助您以类似的方式设置项目。

也许您可以尝试使用库,而不是使用自己的缓存配置。它支持多个memchached服务器实例。例如,使用AWS时的配置:

memcached.cache:
    servers: mycluster.example.com:11211
    mode: dynamic
    expirations: 86400
您还可以查看一个演示应用程序,它可以帮助您以类似的方式设置项目