• 传统队列生产者消费者模型
  • 为了解耦,一组消息能被多次重复消费,加入消费组的概念
  • 为了水平扩容,同一个topic加入分区的概念,一个消费组内的消费者实例 少于等于 分区数量,保证并发

Windows安装kafka

  1. 安装java环境,安装路径不带空格,免得异常报错,https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/

清华源,需要配置好java环境变量

  1. 安装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

  1. 打开cmd,zkserver
  2. 安装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,及总共的数据量