2017-05-03 123 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,这就是客户端寻找本地主机的原因。