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

 更新时间:2024年02月26日 10:58:18   作者:寒山道杳  
这篇文章主要介绍了Mac上使用Docker搭建kafka集群方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker-compose安装RabbitMQ及插件操作步骤

    docker-compose安装RabbitMQ及插件操作步骤

    这篇文章主要为大家介绍了docker-compose安装RabbitMQ及插件操作步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • docker+Nginx部署前端项目的详细过程记录

    docker+Nginx部署前端项目的详细过程记录

    docker的出现解决了我们很多问题,让我们避免陷入各种依赖安装的痛苦中,下面这篇文章主要给大家介绍了关于docker+Nginx部署前端项目的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • Docker rocketmq部署的实现示例

    Docker rocketmq部署的实现示例

    最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑,感兴趣的可以了解一下
    2021-12-12
  • idea使用docker插件实现一键自动化部署

    idea使用docker插件实现一键自动化部署

    本文主要介绍了idea使用docker插件实现一键自动化部署,文中通过图文介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Docker 实用技巧总结

    Docker 实用技巧总结

    这篇文章主要介绍了Docker 实用技巧总结的相关资料,需要的朋友可以参考下
    2016-10-10
  • Ubuntu Docker 的安装部署及简单应用

    Ubuntu Docker 的安装部署及简单应用

    这篇文章主要介绍了Ubuntu Docker 的安装部署的相关资料,这里说明介绍了详细的步骤,需要的朋友可以参考下
    2016-10-10
  • 浅析SpringBoot打包上传到docker并实现多实例部署(IDEA版)

    浅析SpringBoot打包上传到docker并实现多实例部署(IDEA版)

    这篇文章主要介绍了SpringBoot打包上传到docker并实现多实例部署(IDEA版),本文通过图文并茂实例详解的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • docker部署mysql 实现远程连接的示例代码

    docker部署mysql 实现远程连接的示例代码

    这篇文章主要介绍了docker部署mysql 实现远程连接的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Docker中使用Nginx代理多个应用站点的方法

    Docker中使用Nginx代理多个应用站点的方法

    这篇文章主要介绍了Docker中使用Nginx代理多个应用站点的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • docker overlay实现跨主机的容器互通的方法

    docker overlay实现跨主机的容器互通的方法

    这篇文章主要介绍了docker overlay实现跨主机的容器互通,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11

最新评论