kafka集群&单zk环境搭建

2 篇文章 0 订阅
2 篇文章 0 订阅

kafka

1. 入门简介

kafka

https://www.cnblogs.com/likehua/p/3999538.html

zookeeper

https://blog.csdn.net/java_66666/article/details/81015302


2. 使用docker安装zk

docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
  • 2181是zk默认的监听端口

3. 使用docker安装kafka


docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.3.183:2181 -e KAFKA_ADVERTISED_HOST_NAME=192.168.3.183 -e KAFKA_ADVERTISED_PORT=9092 -t wurstmeister/kafka

1. 配置kafka相关环境变量
  1. 这里使用docker构建容器的时候已经配置了相关的环境变量

    1. KAFKA_ZOOKEEPER_CONNECT: 需要连接的zookeeper信息
    2. KAFKA_ADVERTISED_HOST_NAME: 该kafka实例的外网ip
    3. KAFKA_ADVERTISED_PORT: 该kafka实例对外开放的端口
    4. KAFKA_BROKER_ID: 集群中kafka实例的id
  2. 这里启动kafka实例的时候一定需要给不同的实例配置不同的brokerId

  3. 理论上来说我们已经是完成了集群的配置,现在测试下配置的成果.

    1. 进入zookeeper安装目录下的bin运行./zkCli.sh -server (zk的ip):(zk监听的端口)该操作是登录指定的zk客户端
    2. ls /brokers/ids
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KuwludTl-1584340843927)(https://note.youdao.com/yws/api/personal/file/WEBea48ce0be3f83545d2be725a5ec87a4a?method=download&shareKey=1bf902a8dee1a3398359d08b7f51dd53)]

    从这里我们可以看到目前是有三个broker连接这个zk客户端的

4. 操作kafka

接下来我们可以操作kafka了
1. 创建topic
  1. 进入kafka集群任意一个kafka实例中docker exec -ti kafka /bin/bash
  2. 进入/opt/kafka/bin/目录,运行kafka-topic.sh脚本
    kafka-topics.sh --create --zookeeper 192.168.3.183:2181 --replication-factor 3 --partitions 6 --topic test
    • --replication-factor这个参数是这个主题一共会使用几个kafka的broker,注意这里的值不能大于kafka集群中broker的个数
    • --partitions指定这个主题在没个broker下会有几个分区来存储消息
    • --topic为topic的命名

运行完这个指令之后我们就可以创建一个kafka集群中的topic了.
3. 运行指令来查看该topic的详情kafka-topic.sh --describe --zookeeper 192.168.3.183:2181 --topic test.如图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d6sL3sfg-1584340843936)(https://note.youdao.com/yws/api/personal/file/WEB09166f4a39e2000b345505a478db8e92?method=download&shareKey=c2befb693d880e9902500c9fa2787839)]

- leader 是在给出的所有partitons中负责读写的节点,每个节点都有可能成为leader
- replicas 显示给定partiton所有副本所存储节点的节点列表,不管该节点是否是leader或者是否存活。
- isr 副本都已同步的的节点集合,这个集合中的所有节点都是存活状态,并且跟leader同步
2. 发送消息测试kafka集群

直接在不同的kafka实例中用脚本启动生产者消费者测试

  1. 在id为0的broker启动生产者,同样在bin目录下运行脚本kafka-console-producer.sh --broker-list 192.168.3.183:9092 --topic test并发送几条消息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fFpRyNHt-1584340843942)(https://note.youdao.com/yws/api/personal/file/WEBfc8d791bddc91895a89bb74bd585b381?method=download&shareKey=9d98c6785c8a71c89a4ce22d6f38ef7e)]
  2. 在id为1的broker启动消费者,进入之前的bin目录运行脚本kafka-console-consumer.sh --bootstrap-server 192.168.3.183:9093 --from-beginning --topic test[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-69GX5bk3-1584340843954)(https://note.youdao.com/yws/api/personal/file/WEBc4772d00a9db8a0ad09730d779fdad42?method=download&shareKey=9ff48fde193cb7e15d3e170635f256a8)]

在这里我们生产者和消费者是通过不同的broker来启动的以证明不同的broker会同步消息.

总结

QQ交流群
qq交流群

csdn博客地址

以上是单个zk和kafka集群的使用,因为为了方便所以采用的是使用docker安装.如果想了解docker安装或者其他方便的小知识可以关注博主的csdn博客或者加QQ交流群,文档会不定时更新.如有需要请尊重原创注明转发!谢谢大家支持.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Docker搭建kafka集群的过程可以参考以下步骤。首先,需要依赖zookeeper来管理kafka集群的状态和元数据。因此,在搭建kafka集群之前,需要先搭建一个zookeeper集群。可以使用Docker创建一个新的网络,并在该网络上启动一个zookeeper集群。接下来,创建一个docker-compose文件(例如docker-compose-zk.yml),在该文件中定义zookeeper集群的配置和启动参数。然后,使用docker-compose命令启动zookeeper集群。接下来,创建一个新的docker-compose文件(例如docker-compose-kafka.yml),在该文件中定义kafka集群的配置和启动参数。在这个文件中,需要挂载一些文件,这些文件包括kafka的配置文件和数据目录。挂载这些文件的目的是为了保留kafka集群的状态和数据。最后,使用docker-compose命令启动kafka集群。在集群启动后,可以安装kafka-manager来管理kafka集群。可以创建一个新的docker-compose文件(例如docker-compose-kafka-manager.yml),在该文件中定义kafka-manager的配置和启动参数。使用docker-compose命令启动kafka-manager。配置kafka-manager连接到kafka集群,并进行测试。\[1\] 在搭建过程中,可能会遇到一些问题。例如,如果之前已经安装过旧版本的docker,可能会导致安装新版本docker时出现冲突的错误。解决这个问题的方法之一是使用wget命令下载docker-ce.repo文件,并将其放置在/etc/yum.repos.d/目录下。这样可以更新docker的安装源,然后重新安装docker。\[2\]\[3\] #### 引用[.reference_title] - *1* [Docker搭建kafka集群](https://blog.csdn.net/weixin_48412846/article/details/128724377)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [docker搭建kafka集群](https://blog.csdn.net/fxh13579/article/details/81299185)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值