当前位置:   article > 正文

kafka集群&单zk环境搭建_kafka集群可以使用单节点zk么

kafka集群可以使用单节点zk么

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
  • 1
  • 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
  • 2
  • 3
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
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同步
  • 1
  • 2
  • 3
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交流群,文档会不定时更新.如有需要请尊重原创注明转发!谢谢大家支持.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/78635
推荐阅读
相关标签
  

闽ICP备14008679号