Java memcache在多个节点上不工作
我有一个微型服务,比如说“X”,其中我使用spy Memcache实现了Memcache(aws节点)。现在我有一个依赖项,比如说“Y”,它有spring缓存(内存中)实现。现在我有两个端点,有时两个端点请求都在同一个节点上,有时在不同的节点上。第一个请求将把数据放在memcache中,第二个请求将尝试获取第一个端点存储的数据。在我将依赖项“Y”放在pom中之前,此方案工作正常。之后,我的memcache实现仅在两个请求都到达同一节点时才起作用,否则它总是缓存未命中 我试图创建单独的memcahe缓存管理器Java memcache在多个节点上不工作,java,spring-boot,caching,spymemcached,Java,Spring Boot,Caching,Spymemcached,我有一个微型服务,比如说“X”,其中我使用spy Memcache实现了Memcache(aws节点)。现在我有一个依赖项,比如说“Y”,它有spring缓存(内存中)实现。现在我有两个端点,有时两个端点请求都在同一个节点上,有时在不同的节点上。第一个请求将把数据放在memcache中,第二个请求将尝试获取第一个端点存储的数据。在我将依赖项“Y”放在pom中之前,此方案工作正常。之后,我的memcache实现仅在两个请求都到达同一节点时才起作用,否则它总是缓存未命中 我试图创建单独的memcah
@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
您还可以查看一个演示应用程序,它可以帮助您以类似的方式设置项目