- 传统队列生产者消费者模型
- 为了解耦,一组消息能被多次重复消费,加入消费组的概念
- 为了水平扩容,同一个topic加入分区的概念,一个消费组内的消费者实例 少于等于 分区数量,保证并发
Windows安装kafka
- 安装java环境,安装路径不带空格,免得异常报错,https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/
清华源,需要配置好java环境变量
- 安装zookeeper,https://zookeeper.apache.org/releases.html,解压到D:\bigdata\apache-zookeeper-3.6.2-bin:
进入conf目录,将”zoo_sample.cfg”重命名为”zoo.cfg”;
更改dataDir 值,选择你安装的$zookeeper\data\;
系统环境变量中添加:系统变量中添加ZOOKEEPER_HOME=D:\bigdata\zookeeper-3.4.10
编辑系统变量中的path变量,增加%ZOOKEEPER_HOME%\bin
- 打开cmd,zkserver
- 安装kafka,https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.6.1/,解压到D:\bigdata\kafka_2.13-2.6.1,
配置好 config/server.properties 更改 log.dirs值。
进入安装目录,.\bin\windows\kafka-server-start.bat .\config\server.properties 运行kafka
kafka-python 说明
kafka-python 有几个核心类:KafkaConsumer、KafkaProducer、KafkaAdminClient、KafkaClient、KafkaConnection、KafkaMetadata
KafkaAdminClient
KafkaAdminClient connection to the Kafka broker.
- bootstrap_servers , 连接kafka的连接串
- client_id (str) , a name for this client.
- list_topics() 查看含有哪些topic
KafkaConsumer
- auto_offset_reset:earliest与latest,只有在一个group第一次运行的时候才有作用,从第二次运行开始,这个参数就失效了。是在你的 group 第一次运行,还没有 offset 的时候,给你设定初始的 offset.
三问
- kafka-python 如何限定消费组,给第三方赋予某个消费组的权限
- 如何查看当前消费者的 offset,及总共的数据量