大佬我又来了...还望费心看看我已经要觉悟了.先谢过了
问题描述:
由于环境限制.我现在只有一台服务器(a)可以通过外网ip进行访问,另外三台服务器(b,c,d)都得通过ssh命令从a跳转到b,c,d.那好.(以下ip地址均由a,b,c,d代替)
我的kafak集群和zookeeper集群都是部署在 b,c,d上边的.
a已经做好了ip和端口的映射分别是 :
a:9090->b:9092
a:9091->c:9092
a:9092->d:9092
然后这时候我用springboot整合kafka之后打算发消息测试好不好使
spring:
kafka:
# bootstrap-servers: a:9090
# bootstrap-servers: a:9090,a:9091,a:9092
这几种ip配置的方式我都试过了...都会报一个错
2018-12-04 16:59:19.408 INFO 15452 --- [ntainer#1-1-C-1] o.a.k.c.c.internals.AbstractCoordinator : [Consumer clientId=consumer-7, groupId=test2] Group coordinator 10.20.129.161:9090 (id: 2147483486 rack: null) is unavailable or invalid, will attempt rediscovery
2018-12-04 16:59:19.476 WARN 15452 --- [ntainer#1-2-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-8, groupId=test2] Connection to node 2147483486 could not be established. Broker may not be available.
2018-12-04 16:59:20.327 WARN 15452 --- [ntainer#0-1-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-3, groupId=test2] Connection to node 161 could not be established. Broker may not be available.
2018-12-04 16:59:20.347 WARN 15452 --- [ntainer#0-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-2, groupId=test2] Connection to node 181 could not be established. Broker may not be available.
2018-12-04 16:59:20.446 WARN 15452 --- [ntainer#1-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-6, groupId=test2] Connection to node 171 could not be
b,c,d的id分别是161,171,181, 这个时候应该说明它已经通过a映射到了b,c,d了吧但是怎么就是连不上呢....
不行的,kafka会自动发现其他的节点的。
额..大佬...能稍微细说一下嘛...
比如,3个节点的kafka集群向zk注册自己的信息,(我是a,我的IP和端口是xx,我是b,我的ip和端口是xx,c是...),这个时候呢,程序连接a这个节点的时候,a就会告诉程序,我还有b、和c,ip和端口分别是什么,但是你的程序连接这些端口的时候是不通的。
那到底需要怎样配置broker...才能使这个kafka集群可以通过外网映射的方式访问呢?
需要改动什么配置嘛.希望大佬告知一下...
用映射吧,配置host,把服务器和端口都对对应上转发后的。
好.感谢大佬.我试试 网上好多人说如果要用外网访问的话 配置advertised.listeners=PLAINTEXT://x.x.x.x:9090 就可以啦.可是我怎么试都不行
kafka外网转发:
https://www.orchome.com/1903
你的答案