前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年03月 Docker容器 Kafka集群的搭建

【愚公系列】2022年03月 Docker容器 Kafka集群的搭建

作者头像
愚公搬代码
发布2022-03-29 13:34:31
5090
发布2022-03-29 13:34:31
举报
文章被收录于专栏:历史专栏

文章目录

一、Kafka集群的搭建

1.拉取相关镜像

代码语言:javascript
复制
docker pull wurstmeister/kafka
docker pull zookeeper
在这里插入图片描述
在这里插入图片描述

2.运行zookeeper

代码语言:javascript
复制
docker run -d --name zookeeper -p 2181:2181 -t zookeeper
在这里插入图片描述
在这里插入图片描述

3.运行kafka

Kafka0:

代码语言:javascript
复制
docker run -d --name kafka0 -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.16.129:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.16.129:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka

Kafka1:

代码语言:javascript
复制
docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.16.129:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.16.129:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka

Kafka2:

代码语言:javascript
复制
docker run -d --name kafka2 -p 9094:9094 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=192.168.16.129:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.16.129:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -t wurstmeister/kafka

参数说明:

  • -e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
  • -e KAFKA_ZOOKEEPER_CONNECT=10.20.8.50:2181/kafka 配置zookeeper管理kafka的路径10.20.8.50:2181/kafka
  • -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.20.8.50:9092 把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP。
  • -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口:这个不能改
  • -v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

启动3个Kafka节点

在这里插入图片描述
在这里插入图片描述

4.设置topic

进入kafka0

代码语言:javascript
复制
docker exec -it kafka0 /bin/bash

进入bin目录

代码语言:javascript
复制
cd /opt/kafka_2.13-2.8.1/bin
在这里插入图片描述
在这里插入图片描述

创建topic

代码语言:javascript
复制
kafka-topics.sh --create --zookeeper 192.168.16.129:2181 --replication-factor 3 --partitions 5 --topic TestTopic

查看topic

代码语言:javascript
复制
kafka-topics.sh --describe --zookeeper 192.168.16.129:2181 --topic TestTopic

Kafka的topic所有分区会分散在不同Broker上,所以该topic的5个分区会被分散到3个Broker上,其中有两个Broker得到两个分区,另一个Broker只有1个分区,如图所示:

在这里插入图片描述
在这里插入图片描述

集群节点说明:

  • Topic: TestTopic PartitionCount: 5 ReplicationFactor:3代表TestTopic有5个分区,3个副本节点;
  • Topic: 代表主题名称
  • Leader代表主题节点号,
  • Replicas代表他的副本节点有Broker.id = 2、0、1(包括Leader Replica和Follower Replica,且不管是否存活),
  • Isr表示存活并且同步Leader节点的副本有Broker.id = 2、0、1

5.进行生产者和消费者测试

分别在Broker0上运行一个生产者,Broker1、2上分别运行一个消费者:

代码语言:javascript
复制
kafka-console-producer.sh --broker-list 192.168.16.129:9092 --topic TestTopic

kafka-console-consumer.sh --bootstrap-server 192.168.16.129:9093 --topic TestTopic --from-beginning

kafka-console-consumer.sh --bootstrap-server 192.168.16.129:9094 --topic TestTopic --from-beginning
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/03/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Kafka集群的搭建
    • 1.拉取相关镜像
      • 2.运行zookeeper
        • 3.运行kafka
          • 4.设置topic
            • 5.进行生产者和消费者测试
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档