SSS (Simple-Spring-Memcached Library)를 AWS Elasti 캐시 자동 검색 기능과 함께 사용하는 방법은 무엇입니까? 우리는 클라이언트로 spymemcached를 사용하고 있습니다.AWS 자동 검색과 함께 simple-spring-memcached를 사용하는 방법
1
A
답변
0
현재 spymemcached를 사용하고 있으며 간단한 스프링 memcached (SSM)을 사용하여 캐시 계층을 추가하고 싶습니다. 그렇습니까? 그렇다면 spymemcached에 대한 현재 구성을 제공하십시오. SSM과 동일한 구성을 사용하는 것이 쉽습니다.
내가 AWS ElastiCache 클러스터 클라이언트를 사용하여 SSM의 새로운 전용 memcached를 제공을 추가 한
UPDATE. master branch에서 볼 수 있으며 아직 출시되지 않았습니다. 마스터에서 SSM을 만들거나이 repository에서 사용할 수있는 스냅 샷을 사용하는 경우 자동 검색 기능을 사용할 수 있습니다. 구성 아래
<dependency>
<groupId>com.google.code.simple-spring-memcached</groupId>
<artifactId>aws-elasticache-provider</artifactId>
<version>3.4.1-SNAPSHOT</version>
</dependency>
사용 :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/cache
http://www.springframework.org/schema/cache/spring-cache-3.1.xsd">
<cache:annotation-driven />
<bean name="cacheManager" class="com.google.code.ssm.spring.SSMCacheManager">
<property name="caches">
<set>
<bean class="com.google.code.ssm.spring.SSMCache">
<constructor-arg name="cache" index="0" ref="defaultCache" />
<!-- 5 minutes -->
<constructor-arg name="expiration" index="1" value="300" />
<!-- @CacheEvict(..., "allEntries" = true) won't work because allowClear is false,
so we won't flush accidentally all entries from memcached instance -->
<constructor-arg name="allowClear" index="2" value="false" />
</bean>
</set>
</property>
</bean>
<bean name="defaultCache" class="com.google.code.ssm.CacheFactory">
<property name="cacheName" value="defaultCache" />
<property name="cacheClientFactory">
<bean name="cacheClientFactory" class="com.google.code.ssm.providers.elasticache.MemcacheClientFactoryImpl" />
</property>
<property name="addressProvider">
<bean class="com.google.code.ssm.config.DefaultAddressProvider">
<!-- set only single address to configuration endpoint -->
<property name="address" value="mycluster.fnjyzo.cfg.use1.cache.amazonaws.com:11211" />
</bean>
</property>
<property name="configuration">
<bean class="com.google.code.ssm.providers.elasticache.ElastiCacheConfiguration">
<!-- set client mode to dynamic to enable Auto Discovery feature -->
<property name="clientMode" value="#{T(net.spy.memcached.ClientMode).Dynamic}" />
</bean>
</property>
</bean>
</beans>
그리고 그것은 당신을 위해 작동하는지 알려 spymemcached-제공 및 에
제거 종속성 대신 새로운 종속성을 추가을 spymemcached.
AWS 자동 검색 기능을
새 단순 봄 Memcached가 버전 3.5.0 업데이트 2는 GitHub의 중앙 받는다는 저장소에서 사용할 수 있습니다.
아니요. 저는 이미 내 스프링 캐시 계층을 SSM과 통합했습니다. 내 캐시 서버는 Amazon ElastiCache입니다. spymemcache와 함께 SSM을 사용할 때 주소 등록 정보로 모든 캐시 노드의 URL을 제공해야합니다. 노드를 추가/제거 할 때 앱의 구성 변경과 다시 시작이 필요합니다. 이 문제를 피하기 위해 Amazon에는 캐시 클러스터의 주소 만 제공하는 자동 검색 기능이 있으며 나머지 모든 노드를 자동으로 검색합니다. http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/AutoDiscovery.html#AutoDiscovery.ClusterClient (Java 클라이언트에 대한 링크가 있음) – Poorna
SSM에서 자동 검색을 사용하는 방법은 두 가지가 있습니다. 첫 번째 것은 com.google.code.ssm.config.AddressProvider를 구현하여 사용 가능한 memcached 인스턴스 목록을 가져오고 optionaly는 com.google.code.ssm.config.AddressChangeListener를 구현하여 서버 변경 사항을 수신합니다. 두 번째는 SSM 전용 공급자를 만드는 것입니다. 이 클라이언트는 spymemcached의 포크이므로 기존 spymemcached-provider를 확장하여 자동 검색 설정 지원을 추가하는 것이 간단해야합니다. – ragnor
빨리 붙여 주셔서 감사합니다. 나는 다음 주 언젠가 그것을 시도 할 것이고 당신에게 알려줄 것이다. – Poorna