当前位置: 代码网 > 服务器>服务器>云虚拟主机 > Mac上使用Docker搭建kafka集群方式

Mac上使用Docker搭建kafka集群方式

2024年05月19日 云虚拟主机 我要评论
1、拉取镜像// 拉取 kafka 镜像docker pull wurstmeister/kafka// 拉取 zookeeper 镜像docker pull zookeeper2、运行zookeep

1、拉取镜像

// 拉取 kafka 镜像
docker pull wurstmeister/kafka
// 拉取 zookeeper 镜像
docker pull zookeeper

2、运行zookeeper

docker run -d --name zookeeper -p 2181:2181 -t zookeeper

3、运行kafka

注意:192.168.124.11 为宿主机ip

kafka0:

docker run -d --name kafka0 -p 9092:9092 -e kafka_broker_id=0 -e kafka_zookeeper_connect=192.168.124.11:2181 -e kafka_advertised_listeners=plaintext://192.168.124.11:9092 -e kafka_listeners=plaintext://0.0.0.0:9092 -t wurstmeister/kafka

kafka1:

docker run -d --name kafka1 -p 9093:9093 -e kafka_broker_id=1 -e kafka_zookeeper_connect=192.168.124.11:2181 -e kafka_advertised_listeners=plaintext://192.168.124.11:9093 -e kafka_listeners=plaintext://0.0.0.0:9093 -t wurstmeister/kafka

kafka2: 

docker run -d --name kafka2 -p 9094:9094 -e kafka_broker_id=2 -e kafka_zookeeper_connect=192.168.124.11:2181 -e kafka_advertised_listeners=plaintext://192.168.124.11: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=192.168.124.11:2181/kafka  配置zookeeper管理kafka的路径192.168.124.11:2181/kafka
  • -e kafka_advertised_listeners=plaintext://192.168.124.11:9092  把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网ip。
  • -e kafka_listeners=plaintext://0.0.0.0:9092   配置kafka的监听端口:这个不能改-v  /etc/localtime:/etc/localtime  容器时间同步虚拟机的时间  

4、设置topic

进入kafka0:

docker exec -it kafka0 /bin/bash

进入bin目录:

cd /opt/kafka_2.13-2.8.1/bin

创建topic:

kafka-topics.sh --create --zookeeper 192.168.124.11:2181 --replication-factor 3 --partitions 5 --topic testtopic

查看topic:

// 查看指定 topic
kafka-topics.sh --zookeeper 192.168.124.11:2181 --topic testtopic --describe 
// 查看 topic 集合
kafka-topics.sh --zookeeper 192.168.124.11:2181 --list

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上分别运行一个消费者:

kafka-console-producer.sh --broker-list 192.168.124.11:9092 --topic testtopic
 
kafka-console-consumer.sh --bootstrap-server 192.168.124.11:9093 --topic testtopic --from-beginning
 
kafka-console-consumer.sh --bootstrap-server 192.168.124.11:9094 --topic testtopic --from-beginning

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com