2017-05-03 7 views
0

Spring Boot 프로그램에서 우리는 지역 사육사와 Apache Kafka 서버를 원격 Zookeeper 서버에서 원격 서버로 전환합니다 (현재로서는 Cloudkarafka가 가장 좋은 해결책이지만 중요한 것은 아닙니다).Spring 부트 - 원격 Zookeper 구성

이 제공 업체에서는 부트 스트랩 서버와 같은 원격 Kafka를 사용하기 위해 Kafka 구성 맵에 추가해야하는 등록 정보를 다운로드했지만이 이후에도 Spring Boot는 로컬 시스템의 Zookeeper 검색을 계속합니다. 내가 할 수 있는게 있습니까?

application.yml

spring: 
cloud: 
    zookeeper: 
    connect-string: server:2181 

속성지도

Map<String, Object> props = new HashMap<>(); 
    props.put("bootstrap.servers", getBrokers()); 
    props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false); 
    props.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "100"); 
    props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, "15000"); 
    props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); 
    props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); 
    props.put("security.protocol", "SSL"); 
    props.put("ssl.truststore.location", "truststore.jks"); 
    props.put("ssl.truststore.password", "test1234"); 
    props.put("ssl.keystore.location", "keystore.jks"); 
    props.put("ssl.keystore.password", "pass"); 
    props.put("ssl.keypassword", "pass"); 
    props.put("zk.connect", "server:2181"); 

감사합니다.

답변

0

cloudkarafka 특정 설정에 대해 확실하지 않습니다. 하지만 분명히 이것은 개발 환경에 원격 kafka 서버를 연결하는 동안 이전에 직면 한 구성 문제입니다.

kafka server.properties에는 두 개의 주석 처리 된 구성이 있습니다.

#listeners=PLAINTEXT://:9092 
#advertised.listeners=PLAINTEXT://your.host.name:9092 

주석 처리를 제거하고 실제 IP 주소를 설정해야합니다.

리스너 구성은 소켓 서버가 수신 대기하는 주소입니다. 구성되지 않은 경우 java.net.InetAddress.getCanonicalHostName()에서 반환 된 값을 가져 오며, 이는 localhost이며 클라이언트가 localhost를 찾는 이유입니다.