免责声明
热释光;博士
-一天下来,
一切都一样
卡夫卡
在容器中运行。你只是依赖于
如何配置
. 以及
哪些变量
就这样吧。
confluentinc
docker图像
,不是
wurstmeister/kafka
,尽管
there is a similar configuration
read their Connectivity wiki
.
没有违反法律的
wurstmeister
图片,但它是由社区维护的,不是在自动的CI/CD版本中构建的。。。比特纳米人同样是极简主义者,而且保养得更好
.
bitnami
卡夫卡图像,
refer their README
debezium/kafka
上面有文件
are mentioned here
.
注意:不推荐使用播发主机和端口设置。广告听众涵盖了这两个方面。与合流容器相似,Debezium可以使用
KAFKA_
添加前缀的代理设置以更新其属性。
spotify/kafka
已弃用且过时。
fast-data-dev
对于一个多合一的解决方案是很好的,但它是臃肿的
补充阅读,a
功能齐全
docker-compose
this blog
或
this blog by @rmoff
The Confluent quickstart (Docker) document
假设所有生产和消费请求都在Docker网络中。
您可以解决连接到的问题
kafka:9092
在使用Docker网桥的容器中运行Kafka客户机代码,否则您需要添加更多的环境变量以对外公开容器,同时使其在Docker网络中工作。
首先添加的协议映射
PLAINTEXT_HOST:PLAINTEXT
将侦听器协议映射到Kafka协议
密钥:
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP
价值:
PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
然后在不同的端口上设置两个播发侦听器(
kafka
这里是指docker容器的名称;它也可能被命名为
broker
,所以请仔细检查您的服务+主机名)。请注意,协议与上面映射的右侧值匹配
密钥:
KAFKA_ADVERTISED_LISTENERS
PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
运行容器时,添加
-p 29092:29092
对于主机端口映射
热释光;博士
(使用上述设置)
客户端在同一台计算机上,而不是在容器中
运行任何Kafka客户端时
外部
localhost:29092
localhost:2181
用于Zookeeper(需要Docker端口转发)
另一台计算机上的客户端
以及/代替localhost
.
简单地用端口转发播发localhost将不起作用,因为Kafka协议仍将继续播发您配置的侦听器。
需要Docker端口转发
同一主机上容器中的客户端
在Docker网络中
,使用
kafka:9092
(见广告)
PLAINTEXT
用于引导服务器和
zookeeper:2181
对于Zookeeper,就像其他Docker服务通信一样(不需要任何端口转发)
docker run
命令或编写文件时,需要定义共享
network
手动
See the example Compose file for the full Confluent stack
附录
https://operatorhub.io/?keyword=Kafka