一捎泻、安裝啟動
下載地址:https://www-us.apache.org/dist/kafka/2.2.0/kafka_2.11-2.2.0.tgz
解壓后,放到/home/work/kafka目錄下诉儒,大致目錄如下:
bin config libs LICENSE NOTICE site-docs
啟動zk
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
zk啟動后亏镰,默認會監(jiān)聽2181端口
啟動kafka
bin/kafka-server-start.sh -daemon config/server.properties
kakfa啟動后,默認監(jiān)聽9092端口(很多中間件都有自己的端口)
二庙洼、參數(shù)詳解
2.1 server參數(shù)
- advertised.listeners:發(fā)布到ZooKeeper以供客戶端使用陨界,如果未設(shè)置巡揍,則將使用“l(fā)isteners”的值。
- listeners: 監(jiān)聽器列表 菌瘪,將主機名指定為0.0.0.0以綁定到所有接口腮敌。將hostname保留為空以綁定到默認接口。如:PLAINTEXT:// myhost:9092俏扩,TRACE://:9091 PLAINTEXT://0.0.0.0:9092糜工,TRACE:// localhost:9093
- num.network.threads: 處理client請求的線程數(shù)
- num.io.threads:處理請求中io的線程數(shù)
- socket.request.max.bytes:請求數(shù)據(jù)長度最大值,默認是104857600(100M)
- log.retention.hours:未處理數(shù)據(jù)最長保留時間录淡,默認168h(7天)
2.2 producer參數(shù)
- bootstrap.servers: kafka的server
- retries:提交參數(shù)
3.compression.type: data的壓縮方式包括:none, gzip, snappy, lz4, zstd
2.3 consumer參數(shù)
- group.id: 消費分組的唯一標識字符串
- auto.offset.reset: 當無初始化offset或者offset不存在時捌木,該怎么做?有三個值 [latest, earliest, none, anything else ]嫉戚,latest表示同步到最新的offset刨裆,earliest同步到最早的offset澈圈,none 如果之前的offset找不到,則拋異常,anything else 則直接拋異常
- enable.auto.commit: 是否自動提交offset
- auto.commit.interval.ms:自動提交offset的間隔(毫秒)崔拥,設(shè)置間隔是個學(xué)問极舔,設(shè)置不好會造成頻繁rebalance
三、基礎(chǔ)命令
創(chuàng)建topic
#創(chuàng)建test topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic myTopic
查看topic 列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
刪除topics
bin/kafka-topics.sh --delete --topic myTopic --zookeeper localhost:2181
查看topic的消費延時情況
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic myTopic
生成者
bin/kafka-console-producer.sh --topic myTopics --broker-list localhost:9092
消費者
#--from-beginning 是消息offset=0開始链瓦,默認則是從當前offset開始;
#group 是用來標識消息消費分組的,當一個消息多個消費者消費時盯桦,每個消費者需要制定消費分組
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic myTopic --from-beginning --group default_group