2017-11-10 3 views
0

프로젝트에서 hazelcast를 사용하고 있습니다. hazelcast 호스트 : 포트 정보를 환경 변수로 이동시키지 않을 것입니다. 스프링 부트에서 Hazelcast 호스트 포트를 구성하는 방법은 무엇입니까?

<hazelcast-client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.hazelcast.com/schema/client-config 
           http://www.hazelcast.com/schema/client-config/hazelcast-client-config-3.8.xsd" 
        xmlns="http://www.hazelcast.com/schema/client-config"> 

    <network> 
     <connection-timeout>3000</connection-timeout> 
     <connection-attempt-period>1000</connection-attempt-period> 
     <connection-attempt-limit>259200</connection-attempt-limit> 
    </network> 

</hazelcast-client> 

그래서 내가 정의 <address> hazelcast 인스턴스를 제공하기 위해 <network> 내부 <cluster-members> 태그를 추가 할 수 있다는 것을 발견했습니다 : 그 전에 내가 다음 방법으로 보았다 기본 구성을했다. 나는로 내 hazelcast.xml 파일을 수정 한 :

<network> 
    <cluster-members> 
     <address>${HAZELCAST_URL}</address> 
    </cluster-members> 
    ... 

하지만 내 응용 프로그램을 시작하고 때마다 보여줍니다 :

2017-11-10 17:55:45 [service,,,] WARN c.h.c.s.i.ClusterListenerSupport hz.client_0 [dev] [3.8.5] Exception during initial connection to ${HAZELCAST_URL}:5701, exception java.lang.IllegalArgumentException: Can't resolve address: ${HAZELCAST_URL}:5701 
2017-11-10 17:55:45 [service,,,] WARN c.h.c.s.i.ClusterListenerSupport hz.client_0 [dev] [3.8.5] Exception during initial connection to ${HAZELCAST_URL}:5702, exception java.lang.IllegalArgumentException: Can't resolve address: ${HAZELCAST_URL}:5702 

그래서 여전히 기본 포트에 연결을 시도하고도 변수가 해결되지 않습니다. 그것을 구성하는 방법이 있습니까?

답변

0

java.util.Properties을 클라이언트 구성 빌더로 전달할 수 있습니다. 스프링 환경에서 빌드 만하면됩니다.

@Bean 
public ClientConfig clientConfig(Environment environment) throws Exception { 
     Properties properties = new Properties(); 
     String HAZELCAST_URL = "HAZELCAST_URL"; 
     properties.put(HAZELCAST_URL, environment.getProperty(HAZELCAST_URL)); 
     XmlClientConfigBuilder xmlClientConfigBuilder = new XmlClientConfigBuilder("hazelcast-client.xml"); 
     xmlClientConfigBuilder.setProperties(properties); 
     return xmlClientConfigBuilder.build(); 
} 

@Bean 
public HazelcastInstance hazelcastInstance(ClientConfig clientConfig) { 
     return HazelcastClient.newHazelcastClient(clientConfig); 
} 

주,이 작업을 수행하는 더 우아한 방법이, 위에서 가능한

로 간단하게 유지하는 하나의 솔루션이되어 있습니다
관련 문제