Java技术栈总结:kafka篇

一、# 基础知识

1、安装

  • 部署一台ZooKeeper服务器;
  • 安装jdk;
  • 下载kafka安装包;
  • 上传安装包到kafka服务器上:/usr/local/kafka;
  • 解压缩压缩包;
  • 进入到config目录,修改server.properties配置信息:
#broker.id属性在kafka集群中必须要是唯⼀
broker.id=0

#kafka部署的机器ip和提供服务的端⼝号
listeners=PLAINTEXT://192.168.65.60:9092

#kafka的消息存储⽂件
log.dir=/usr/local/data/kafka-logs

#kafka连接zookeeper的地址
zookeeper.connect=192.168.65.60:2181
  • 进入到bin目录,使用命令启动kafka服务器(带配置文件)
./kafka-server-start.sh -daemon ../config/server.properties
  • 检查kafka是否启动成功:
进入到zk内查看是否有kafka节点:
/brokers/ids/0

2、基本概念

名称

说明

Broker

消息中间件处理节点,一个kafka节点为一个broker,一个或者多个broker组成一个kafka集群

Topic

消息主题。kafka根据topic对消息进行分类,发布到kafka集群的每条消息都需要指定一个topic

Partition

Topic在物理上的分区,一个Topic可以分为多个Partition,每个Partition是一个有序的记录序列。

Replica

Partition的副本

Producer

消息生产者。向broker发送消息的客户端。

Consumer

消息消费者。从broker读取消息的客户端。

Consumer Group

消费组。一个消费组可以包含一个或者多个消费者,每条消息只能被消费组的某个消费者消费

3、主题创建

  • 通过kafka命令向zk中创建一个主题
./kafka-topics.sh --create --zookeeper 172.16.253.35:2181 --replicationfactor 1 --partitions 1 --topic test
  • 查看当前zk中所有的主题
./kafka-topics.sh --list --zookeeper 172.16.253.35:2181 test

4、发送消息

把消息发送给broker的某个topic,打开一个kafka发送消息的客户端,然后开始用客户端向kafka服务器发送消息。

./kafka-console-consumer.sh --bootstrap-server 172.16.253.38:9092 --topic test

5、消费消息

打开一个消费消息的客户端,向kafka服务器的某个主题消费消息。

生产者将消息发送给broker,broker会将消息保存到本地的日志文中。/usr/local/kafka/data/kafka-logs/主题-分区/00000000.log;消息的保存是有序的,通过offset偏移量来描述消息的有序性;消费者消费消息时也是通过offset来描述所要消费消息的位置。

  • 方式一:从当前主题中的最后一条消息的offset + 1 开始消费:
./kafka-console-consumer.sh --bootstrap-server 172.16.253.38:9092 --topic test
  • 方式二:从当前主题的第一条消息开始消费
./kafka-console-consumer.sh --bootstrap-server 172.16.253.38:9092 --from-beginning --topic test

6、单播&&多播消息

如果多个消费者在同一个消费组,那么只有一个消费者可以订阅到topic中的消息。即,同一个消费组中只能有一个消费者收到一个topic中的消息。

不同的消费组订阅同一个topic,那么不同消费组中各只有一个消费者能收到消息。

./kafka-console-consumer.sh --bootstrap-server 172.16.253.38:9092 --consumer-property group.id=testGroup1 --topic test
./kafka-console-consumer.sh --bootstrap-server 172.16.253.38:9092 --consumer-property group.id=testGroup2 --topic test

7、查看消费组信息

/kafka-consumer-groups.sh --bootstrap-server 172.16.2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值