首页 帮助中心 香港云服务器 如何应用Docker 启动 Kafka 集群
如何应用Docker 启动 Kafka 集群
时间 : 2024-10-25 16:07:08 编辑 : 华纳云 阅读量 : 83

微服务和事件驱动架构流行,Apache Kafka是核心。但自行部署Kafka难度大。幸运的是,Docker和容器技术大大简化了这一过程。本文华纳云为大家分享关于如何使用Docker 启动 Kafka 集群。

想要使用Docker 启动 Kafka 集群前提条件是有Docker桌面、Node.js和 yarn、了解Kafka 和 Docker 的基础知识。从Kafka 3.3起,引入了KRaft,不再依赖Zookeeper,简化了部署。Kafka 3.8开始支持kafka-native Docker镜像,启动更快,内存占用更低,便于本地开发。

如启动一个集群,把端口9092公开到主机上,以允许本机运行的应用程序可以连接到它。Kafka启动:

docker run -d --name=kafka -p 9092:9092 apache/kafka

当图像被拉取,可以在一两秒内启动并运行一个Kafka实例。apache/kafka 镜像在目录中附带了几个有用的脚本/opt/kafka/bin。运行以下命令获取集群 ID且验证集群是否已启动并正在运行:

docker exec -ti kafka /opt/kafka/bin/kafka-cluster.sh cluster-id --bootstrap-server :9092

会类似输出:

Cluster ID: 5L6g3nShT-eMCtK--X86sw

创建示例主题并生成信息:

docker exec -ti kafka /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server :9092 --topic demo

运行后,支持每行输入一条消息,如输入几条消息,没行为一条:

First message

Second message

按enter发送最后一条消息,按 ctrl+c把消息将发布到 Kafka。确认消息已发到集群中:

docker exec -ti kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server :9092 --topic demo --from-beginning

输出消息:

First message

Second message

打开另一个终端并发布更多消息并查看它们是否出现。完成后,按 ctrl+c 停止使用消息。有一个本地运行的 Kafka 集群,并且已验证您可以连接到它。

以上就是展示从命令行来连接到Kafka 集群,如果是从应用程序来连接集群,可以使用KafkaJS库中简单Node项目。因为集群在本地运行并且在端口9092中公开,应用程序可以通过localhost:9092\该示例应用连接到本地运行的集群,消费并记录来自"demo"主题的消息。在开发模式下,如果主题不存在,应用会自动创建它。

如果不存在上一步中运行 Kafka 集群,启动 Kafka 实例:

docker run -d --name=kafka -p 9092:9092 apache/kafka

在本地克隆 GitHub 存储库

git clone https://github.com/dockersamples/kafka-development-node.git

导航到项目:

cd kafka-development-node/app

用yarn安装依赖项:

yarn install

运行yarn dev启动应用,这会设置NODE_ENV为development模式,并用nodemon监控文件变动。

yarn dev

应用正在运行并打印接收到的消息。在新终端,使用特定命令发布消息。

docker exec -ti kafka /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server :9092 --topic demo

发送消息给集群:

Test message

ctrl+c请记住,完成后按下以停止生成消息。

华纳云 推荐文章
如何评估Linux云盘性能主要有哪些指标 Linux 系统:使用superbench测试磁盘性能和网速 Kubernetes详细使用指南及云成本监控工具分享 用户服务器的密码丢失如何恢复服务器访问? Linux云主机中自定义配置DNS常见错误操作 云服务器可以ping通但端口不通怎么办 用云主机搭建个人WordPress博客详细指南 Linux云主机挂载硬盘数据拷贝失败怎么解决? Windows系统通过FTP上传文件到Linux云服务器的方法 Linux中用户和用户组管理应该怎么做
客服咨询
7*24小时技术支持
技术支持
渠道支持