Kafka基本操作、整合代码自定义分区器、提高吞吐量

基本命令 bin/kafka-topics.sh –bootstrap-server 192.16…

基本命令

bin/kafka-topics.sh –bootstrap-server 192.168.6.101:9092 –list
# 创建名为test的主题
bin/kafka-topics.sh –bootstrap-server 192.168.6.101:9092 –create –partitions 1 –replication-factor 1 –topic first
#查看 first 主题的详情
bin/kafka-topics.sh –bootstrap-server
192.168.6.101:9092 –alter –topic first –partitions 3
#修改
bin/kafka-topics.sh –bootstrap-server 192.168.6.101:9092 –topic first –alter –partitions 4
#删除 topic
bin/kafka-topics.sh –bootstrap-server
192.168.6.101:9092 –delete –topic first

生产者命令行操作

像topic中发送数据
bin/kafka-console-producer.sh –bootstrap-server 192.168.6.101:9092 –topic first
在另一台虚拟机创建消费者取数据
bin/kafka-console-consumer.sh –bootstrap-server 192.168.6.101:9092 –topic first
取出所有数据
bin/kafka-console-consumer.sh –bootstrap-server 192.168.6.101:9092 –topic first –from-begining

添加依赖

创建客户端

回调发送数据

同步发送数据

当第一批数据处理完,才发送第二批数据

(1)便于合理使用存储资源,每个Partition在一个Broker上存储,可以把海量的数据按照分区切割成一 块一块数据存储在多台Broker上。合理控制分区的任务,可以实现负载均衡的效果。

(2)提高并行度,生产者可以以分区为单位发送数据;消费者可以以分区为单位进行消费数据。

分区规则

(1)指明partition的情况下,直 接将指明的值作为partition值

(2)没有指明partition值但有key的情况下,将key的hash值与topic的 partition数进行取余得到partition值

(3)既没有partition值又没有key值的情况下,Kafka采用Sticky Partition(黏性分区器),会随机选择一个分区,并尽可能一直 使用该分区,待该分区的batch已满或者已完成,Kafka再随机一个分区进行使用(和上一次的分区不同)

指定分区

参数为topic,分区,key,value

kafkaProducer.send(new ProducerRecord<>("first", 1,"","hello")

自定义分区器

提高吞吐量

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/5474.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部