基于linux-Centos7.0环境先进行测试学习
Producer即生产者,向Kafka集群发送消息,在发送消息之前,会对消息进行分类,即Topic,
Topic即主题,通过对消息指定主题可以将消息分类,消费者可以只关注自己需要的Topic中的消息
Consumer即消费者,消费者通过与kafka集群建立长连接的方式,不断地从集群中拉取消息,然后可以对这些消息进行处理。
下载
kafka官网 http://kafka.apache.org/downloads 下载到最新的kafka安装包
安装
将二进制文件解压到指定目录
tar -zxvf kafa_2.11.tgz -C /opt/module
运行
kafka运行依赖于zookeeper,高版本内置zookeeper环境
a.启动zookeeper环境
bin/zookeeper-server-start.sh config/zookeeper.properties
启动后不要关闭终端 新建连接执行命令
b.启动kafka进程
bin/kafka-server-start.sh config/server.properties
注意保持进程状态活跃,新建终端执行操作
c.新建连接 ,创建Topic
kafka_2.11-2.0.0]$ bin/kafka-topics.sh --create --zookeeper localhost:2181
--replication-factor 1 --partitions 1 --topic test
replication-factor 副本的个数
partitions 分区数目
topic 主题名称
查看已经创建的topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
d.创建生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
broker-list 生产者的唯一标示
topic 消息主题名称
>输入内容+Enter
e.新建连接,创建消费者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
from-beginning 从一开始就接收
显示 输入内容
kafka的存储,分区partitions,创建一个topic时,同时可以指定分区数目,分区数越多,其吞吐量也越大
kafka在接收到生产者发送的消息之后,会根据均衡策略将消息存储到不同的分区中。
生产者在向kafka集群发送消息的时候,可以通过指定分区来发送到指定的分区中
也可以通过指定均衡策略来将消息发送到不同的分区中
如果不指定,就会采用默认的随机均衡策略,将消息随机的存储到不同的分区中
kafka常用命令:
1.查看topic的详细信息
./kafka-topics.sh -zookeeper 127.0.0.1:2181 -describe -topic testKJ1
2、为topic增加副本
./kafka-reassign-partitions.sh -zookeeper 127.0.0.1:2181 -reassignment-json-file json/partitions-to-move.json -execute
3、创建topic
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testKJ1
4、为topic增加partition
./bin/kafka-topics.sh –zookeeper 127.0.0.1:2181 –alter –partitions 20 –topic testKJ1
5、kafka生产者客户端命令
./kafka-console-producer.sh --broker-list localhost:9092 --topic testKJ1
6、kafka消费者客户端命令
./kafka-console-consumer.sh -zookeeper localhost:2181 --from-beginning --topic testKJ1
7、kafka服务启动
./kafka-server-start.sh -daemon ../config/server.properties
8、下线broker
./kafka-run-class.sh kafka.admin.ShutdownBroker --zookeeper 127.0.0.1:2181 --broker #brokerId# --num.retries 3 --retry.interval.ms 60
shutdown broker
9、删除topic
./kafka-run-class.sh kafka.admin.DeleteTopicCommand --topic testKJ1 --zookeeper 127.0.0.1:2181
./kafka-topics.sh --zookeeper localhost:2181 --delete --topic testKJ1
10、查看consumer组内消费的offset
./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group test --topic testKJ1
./kafka-consumer-offset-checker.sh --zookeeper 192.168.100.1:12181 --group group1 --topic group1