介绍:
包含:生产者、topic、消费者。
topic的创建可以分区
生产者:可以指定分区,指定均衡策略
消费者:一个消费者可以消费多个分区,但是一个分区只能给一个消费者
kafka的broker
1.kafka环境的搭建
找寻kafka的目录,在目录下下载kafka的文件:
wget https://archive.apache.org/dist/kafka/0.8.2.2/kafka_2.9.2-0.8.2.2.tgz
解压tar kafka压缩文件名
在kafka的安装文件里面创建日志目录datas/kafkalogs
配置kafka的config下的server.properties文件。(特别说明一下,如果是要建立kafka的伪集群只需要在kafka的config下创建server_1.properties...然后配置
broker.id=1
port=9002
host.name=172.16.37.114
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.partitions=8
num.recovery.threads.per.data.dir=1
##################################
zookeeper.connect=172.16.37.107:2181,172.16.37.108:2181,172.16.37.223:2183
zookeeper.connection.timeout.ms=6000
zookeeper.sync.time.ms=2000
##################################
auto.create.topics.enable=false
delete.topic.enable=true
#####################################
log.dirs=/usr/local/kafka/datas/server1
log.flush.interval.ms=30000
log.retention.check.interval.ms=30000
log.retention.bytes=-1
log.retention.minutes=60
#log.retention.ms=1000
#log.retention.hours=1
log.cleaner.enable=true
log.cleanup.policy=delete
log.segment.bytes=1073741824
配置好之后启动:
./kafka-server-start.sh -daemon ../config/server1.properties
2.补充知识https://www.cnblogs.com/5iTech/articles/6043224.html
3、停止:./bin/kafka-server-stop.sh
4.查看topic
./bin/kafka-topics.sh --zookeeper 172.16.37.112:2181 -describe
./kafka-topics.sh --list --zookeeper 172.16.37.107:2181
5.创建topic
./kafka-topics.sh --create --zookeeper 172.16.37.107:2181 --replication-factor 1 --partitions 1 --topic test
6.生产者发送消息
./kafka-console-producer.sh --broker-list 172.16.37.223:9092 --topic test
执行完毕之后会进入这样一个编辑页:
7、消费者接收消息:
低版本为:./kafka-console-consumer.sh --zookeeper 172.16.37.107:2181 --from-beginning --topic test
高版本为:./kafka-console-consumer.sh --bootstrap-server 172.16.37.223:9092 --from-beginning --topic test
执行完之后会接受到生产者发送的消息
8、删除topic:
./bin/kafka-topics.sh --zookeeper 172.16.37.181:2181 --delete --topic test
9、为topic增加副本
./kafka-reassign-partitions.sh -zookeeper127.0.0.1:2181-reassignment-json-file json/partitions-to-move.json -execut
命令说明:http://172.16.37.181:7080/display/PUB/Topics+Config
10、为topic增加partition
./bin/kafka-topics.sh –zookeeper 127.0.0.1:2181–alter –partitions20–topic testKJ1
11、下线broker
./kafka-run-class.sh kafka.admin.ShutdownBroker --zookeeper127.0.0.1:2181--broker #brokerId# --num.retries3--retry.interval.ms60
shutdown broker
12、kafka的性能测试
kafka中有自带的性能测试代码,测试结果均来自kafka自带的测试代码 ,位于bin/kafka-producer-perf-test.sh。
集群扩容,生成扩容文件:./bin/kafka-reassign-partitions.sh --zookeeper 172.16.37.112:2181,172.16.37.112:2182,172.16.37.112:2183 --topics-to-move-json-file bin/topics-to-move.json -
·-broker-list "0,1,2,3" --generate
主要参数有以下四个,
messages 生产者发送总的消息数量
message-size 每条消息大小(单位为b)
batch-size 每次批量发送消息的数量
topics 生产者发送的topic
threads 生产者使用几个线程同时发送
例如bin/kafka-producer-perf-test.sh --messages 100000 --message-size 1000 --batch-size 10000 --topics test4 --threads 4 --broker-list hadoop234:9092,hadoop237:9092,hadoop238:9092
返回信息为
start.time, end.time, compression, message.size, batch.size, total.data.sent.in.MB, MB.sec, total.data.sent.in.nMsg, nMsg.sec
2015-10-15 18:56:27:542, 2015-10-15 18:56:30:880, 0, 1000, 10000, 95.37, 28.5702, 100000, 29958.0587
可以通过调节参数进行性能测试。
参考博客:
https://www.cnblogs.com/hei12138/p/7805475.html