2017-05-16 12 views
3

Jedis lib를 사용하여 로컬로 실행되는 Java 클라이언트를 사용하여 aws에서 ElasticCache (Redis)에 액세스하려고합니다. here 단계를 따라 로컬로 redis-cli를 사용하여 redis에 액세스 할 수있었습니다.Jedis Lib을 사용하여 aws에서 로컬로 ElasticCache 클러스터에 연결할 수 없습니다.

문제는 Jedis lib를 사용하여 aws Redis에 연결하려고 할 때 NAT 공용 주소가 슬롯 (initializeSlotsCache)을 계산하기 위해 redis 개인 IP로 변환되는 것입니다. 이 기능을 사용 중지하는 방법을 찾지 못했습니다. 해결 방법이 있습니까? 여기

우리가 Jedis을 사용하여 연결하는 방법은 다음과 같습니다 우리는 매핑 NAT를 사용하는

factory = new JedisConnectionFactory(new RedisClusterConfiguration(this.clusterProperties.getNodes())); 
    factory.setUsePool(true); 
    factory.setPoolConfig(this.jedisPoolConfig()); 
    factory.afterPropertiesSet(); 
    return factory; 

각 노드에 대해 IPS. 하지만 Jedis 라이브러리는 캐시에 개인 ips를 저장하므로 다음과 같은 예외가 발생합니다.

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool 

어떤 제안이 좋을까요? 우리는 옵션이 부족합니다. 미리 감사드립니다.

답변

0

AWS 환경 외부에서 AWS가 호스팅하는 redis에 연결할 수 없습니다.

우리는 비슷한 문제에 봉착했습니다. 우리는 dev 및 유닛 테스트를 위해 로컬 redis 인스턴스를 설치해야했습니다.