栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

连接到在Docker中运行的Kafka

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

连接到在Docker中运行的Kafka

免责声明

tl; dr- 最终,容器中运行 的都是相同的 Apache Kafka。您只取决于 它的配置方式 。以及 哪些变量
使它如此。


以下使用

confluentinc
docker
images
,而不是
wurstmeister/kafka
,尽管有类似的配置,但我没有尝试过。如果使用该图像,请阅读其Connectivity
Wiki。

没有什么与

wurstmeister
映像相反,而是由社区维护的,不是内置于自动CI /
CD版本中的。。。Bitnami的映像同样非常简单,可以在多个云提供商中运行。对于
bitnami
Kafka图片,请参阅其自述文件

debezium/kafka
这里提到它的文档。
注意:不建议使用公告的主机和端口设置。广告听众涵盖了

spotify/kafka
已过时和过时。
fast-data-dev
对于一个解决方案来说很棒,但它it肿

有关补充阅读, 功能齐全的

docker-compose
网络图,请参阅@rmoff的此博客。

回答

Confluent快速入门(Docker)文档假定所有生产和消费请求都将在Docker网络内。

您可以通过在自己的容器中运行Kafka客户端代码来解决该问题,但否则,您需要添加更多环境变量以在外部暴露该容器,同时使其仍在Docker网络中运行。

首先添加一个协议映射

PLAINTEXT_HOST:PLAINTEXT
,它将侦听器协议映射到Kafka协议

-eKAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT

然后在不同的端口上设置两个播发的侦听器。(

kafka:9092
这里是指Docker容器的名称)。请注意,协议与上面映射的右侧值匹配

-eKAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092

运行容器时,添加

-p 29092:29092
用于主机端口的映射

tl; dr (具有上述设置)

在Docker网络 外部
运行任何Kafka客户端时(包括您可能已在本地安装的CLI工具),可

localhost:29092
用于引导服务器和
localhost:2181
Zookeeper

在Docker网络中 运行应用程序 ,可

kafka:9092
用于引导服务器和
zookeeper:2181
Zookeeper

有关完整的Confluent堆栈,请参见示例Compose文件。

附录

对于对 Kubernetes 部署感兴趣的任何人:https :
//operatorhub.io/? keyword =
Kafka



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368792.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号