2017-05-03 96 views
0

在我們的Spring Boot程序中,我們正在從本地Zookeeper和Apache Kafka服務器切換到遠程(我們目前發現的最佳解決方案是cloudkarafka,但這並不重要)。Spring Boot - 遠程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,這就是客戶端尋找本地主機的原因。