Kafka快速入门一:基本概念、安装部署和命令行操作

1.基本概念

1.1Kafka是什么

Kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。

1.2消息队列应用场景

传统消息队列有三大应用场景:

    异步处理
    流量消峰
    解耦

1.3消息队列两种模式

消息队列两种模式:点对点模式和发布/订阅模式。

    点对点模式

点对点模式中生产者和消费者一对一,消费者收到消息后,这条消息就会删除。

    发布订阅模式

发布订阅模式中,生产者和消费者关系是一对多,所以消费消息后不会删除消息,Kafka默认保留7天。

注意:发布订阅模式类似微博,三个重要概念publish、topic、subscribe

    区别

点对点模式消费一条删除一条;

发布/订阅模式不会删除,会持久化一段时间(默认一周,可配置)。

2.安装部署

使用docker快速部署参考:

Kafka安装步骤:

①下载安装包,0.9版本对kafka消费者重新设计,简化了消费者使用难度,所以选择0.10及以后的版本;

②解压,tar -zxvf /opt/kafka_..tgz -C /opt/module/;

③修改配置文件,vim /opt/module/../conf/server.properties

#kafka运行日志存放的路径,记得要创建logs目录	
log.dirs=/opt/module/kafka/logs
#配置连接Zookeeper集群地址
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181

④配置环境变量

$ sudo vi /etc/profile

#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin

$ source /etc/profile

⑤分发,xsync kafka_2.11…/

⑥修改各节点broker.id,vim server.properties,修改broker.id,broker.id可以从0开始

⑦启动,kafka没有群起脚本,只能一个一个启动。(需先启动zookeeper)

kafka-server-start.sh –daemon config/server.properties(–daemon表示后台进程)

3.命令行操作

kafka的命令行操作一般用于测试,主要有7个命令:查看所有topic、创建topic、删除topic、发送消息、消费消息、查看某个topic详情、修改topic分区数。

    查看所有topic
kafka-topics.sh --zookeeper hadoop102:2181 --list
    创建topic
kafka-topics.sh --zookeeper hadoop102:2181 --create --replication-factor 3 --partitions 1 --topic first
选项说明:
--topic 定义topic名
--replication-factor  定义副本数
--partitions  定义分区数
    删除topic
kafka-topics.sh --zookeeper hadoop102:2181 --delete --topic first
    发送消息
kafka-console-producer.sh --broker-list hadoop102:9092 --topic first
    消费消息
kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first
    查看某个Topic的详情
kafka-topics.sh --zookeeper hadoop102:2181 --describe --topic first
    修改分区数
kafka-topics.sh --zookeeper hadoop102:2181 --alter --topic first --partitions 6

分区数只能增大,不能减少。

    查看消费者组的消费情况
kafka-consumer-groups.sh  --bootstrap-server hadoop101:9092 --describe --group groupname

打印如下:

TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID                                 HOST            CLIENT-ID
testopic        0          455843          455887          44              abcdef-4875dbdb-2034-4483-9ccb-b950682608b4 /*.*.*.*   abcdef

这条指令经常使用,可以查看某个消费者组topic的偏移量,从而判断是否有消息积压。

经验分享 程序员 微信小程序 职场和发展