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

1.基本概念

1.1Kafka是什么

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

1.2消息队列应用场景

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

  • 异步处理

  •   流量消峰

  •   解耦

1.3消息队列两种模式

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

  • 点对点模式

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

注意:一个MQ可以有很多生产者消费者,但是生产者消费者是一一对应的,不能一对多,类似微信点对点通信。

  • 发布订阅模式

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

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

  • 区别

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

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

2.安装部署

使用docker快速部署参考:https://blog.csdn.net/qq_35394891/article/details/84349955

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的偏移量,从而判断是否有消息积压。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值