当前位置:首页 » 《随便一记》 » 正文

Docker安装kafka简单步骤

3 人参与  2023年05月03日 13:29  分类 : 《随便一记》  评论

点击全文阅读


1.什么是kafka?

        1.1)kafka主要用于大数据实时数据处理领域,是一个基于发布订阅模式的消息队列

        1.2)消息队列有两种模式:点对点模式、发布订阅模式

                1.2.1)点对点模式(一对一):生产者生产消息发送到队列,消费者主动到队列中取并消费,消费后的消息将从队列中移除,这样可以避免一个消息被重复消费,队列支持多个消费者存在,但是一个消息只能被一个消费者消费。

                1.2.1)发布订阅模式(一对多):生产者将消息发送到topic,多个消费者订阅并消费,topic是用于消息分类的。发布订阅有两种模式:

                        消息队列主动向消费者推送:这种存在推送量与消费量不成正比时会导致消费者崩溃,假如队列按照每秒50条推送,消费者按照每秒10条消费,这就会出问题。

                        消费者主动向消息队列拉取:这种需要消费者维护一个长轮询获取消息,还可以使用一个队列来存放订阅该topic的所有消费者,有消息就通知消费者来消费,这种如果消费者挂了就收不到了。

2.安装: 

        首先需要安装zookeeper

docker pull wurstmeister/zookeeper

        安装kafka

docker pull wurstmeister/kafka 

        启动zookeeper

docker run -d --name zookeeper -p 2181:2181 -e TZ="Asia/Shanghai" --restart always wurstmeister/zookeeper 

参数介绍:

                --name:容器名字

                -p:端口号(映射到宿主机的端口:zookeeper端口号)

        启动kafka

docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=<这里换成你的zookeeper地址和端口> -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://<这里换成你的kafka地址和端口> -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e TZ="Asia/Shanghai" wurstmeister/kafka 

        参数介绍:

                        --name:容器名字

                        -p:端口号 

                        KAFKA_BROKER_ID:该ID是集群的唯一标识

                        KAFKA_ADVERTISED_LISTENERS:kafka发布到zookeeper供客户端使用的服务地址。

                        KAFKA_ZOOKEEPER_CONNECT:zk的连接地址

                        KAFKA_LISTENERS:允许使用PLAINTEXT侦听器

3.使用kafka:

进入kafka容器内部

docker exec -it kafka /bin/sh

进入路径:/opt/kafka_2.13-2.7.0/bin下

通过生产者向topic发送消息

./kafka-console-producer.sh --broker-list kafka地址:访问kafka的端口号 --topic jbjb(topic名)

另外打开一个窗口 消费者消费消息

kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic jbjb --from-beginning

 


点击全文阅读


本文链接:http://zhangshiyu.com/post/60443.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1