如何设置汇合泊坞窗外部访问,基于汇合泊坞窗快速入门
以下是基于此快速入门指南: http : //docs.confluent.io/current/cp-docker-images/docs/quickstart.html
在那里,他们在自己的docker集装箱上展示了各种卡夫卡/汇合组件,
–net =主机
标志并通过访问
本地主机:端口
无论我做什么,我都无法从Ubuntu服务器本身以外的地方访问它,无论是通过IP还是域,它们都应该工作,比如控制中心。 但在同一台主机上,我的Ubuntu的盒子,一切工作正常。
任何想法可能在这里的问题? 已经停留了几个小时了
是不是无法访问端口的问题(即telnet不可能),或者你不能使服务器工作(即没有请求被服务器回答)?
有-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092 \
,这是地址kafka经纪人沟通的客户端通信(除了本地主机,这显然不会工作…)后初始connexion。 您可以用您的服务器的IPreplacelocalhost
,它应该正常工作。
更具体地说, listeners
configuration(默认为0.0.0.0:9092)和advertised.listeners
(默认PLAINTEXT:// locahost:9092)客户端通过listener
绑定初始化(bootstrap-server或broker-list)连接。 一旦这个初始连接完成,代理将从群集中的所有代理返回所有advertised.listener,这是以后的交换所使用的)
从github回购,confluent分配给监听的广告监听的价值,改变主机为0.0.0.0(所以它可以从远程访问肯定)你不能设置0.0.0.0 advertised.listeners虽然,它必须是一个独特的可达的界面
现在回答我自己,一个愚蠢的简单的防火墙/docker工具:
使用UFW(防火墙)和docker时要小心
见http://blog.viktorpetersson.com/post/101707677489/the-dangers-of-ufw-docker
我在端口3000上使用了一个简单的nodeJS hello world示例,只要我使用默认/桥接networking并发布端口(-p 3000:3000),就可以从外部连接到它。
使用主机networking,我根本无法连接。
在这两种情况下,防火墙(Ubuntu的UFW)没有明确允许端口3000,所以Docker必须在这里重写iptables,而不用UFW注意到允许桥接和发布的端口通过。
=>通过在UFW中明确打开kafka端口来解决