訊息生產者,發布訊息到 kafka 集群的終端或服務。
2)broker:
kafka 集群中包含的伺服器。
3)topic:
每條發布到 kafka 集群的訊息屬於的類別,即 kafka 是面向 topic 的。
4)partition:
partition 是物理上的概念,每個 topic 包含乙個或多個 partition。kafka 分配的單位是 partition。
5)consumer:
從 kafka 集群中消費訊息的終端或服務。
6)consumer group:
high-level consumer api 中,每個 consumer 都屬於乙個 consumer group,每條訊息只能被 consumer group 中的乙個 consumer 消費,但可以被多個 consumer group 消費。
7)replica:
partition 的副本,保障 partition 的高可用。
8)leader:
replica 中的乙個角色, producer 和 consumer 只跟 leader 互動。
9)follower:
replica 中的乙個角色,從 leader 中複製資料。
10)controller:
kafka 集群中的其中乙個伺服器,用來進行 leader election 以及 各種 failover。
11)zookeeper:
kafka 通過 zookeeper 來儲存集群的 meta 資訊。
kafka將所有訊息組織成多個topic的形式儲存,而每個topic又可以拆分成多個partition,每個partition又由乙個乙個訊息組成。每個訊息都被標識了乙個遞增序列號代表其進來的先後順序,並按順序儲存在partition中。
1、partitions:指定partition分割槽個數(topicname.partitions=xx)
2、buffer.memory:用於指定producer端用於快取訊息的緩衝區大小(kafka.producer.buffer.memory=33554432)
3、max.request.size:決定了每次傳送給kafka伺服器請求的最大大小
4、batch.size:producer會把發往同一分割槽的多條訊息封裝進乙個batch中,當batch滿了後,producer才會把訊息傳送出去(kafka.producer.batch.size=16384)
5、linger.ms:決定最多過多久,不管這個batch有沒有寫滿,都必須傳送出去了(kafka.producer.linger.ms=1)
6、acks:控制訊息的永續性,目前提供了3個取值(kafka.producer.acks=0)
1)acks = 0: 表示produce請求立即返回,不需要等待leader的任何確認。這種方案有最高的吞吐率,但是不保證訊息是否真的傳送成功。
2)acks = -1: 表示分割槽leader必須等待訊息被成功寫入到所有的isr副本(同步副本)中才認為produce請求成功。這種方案提供最高的訊息永續性保證,但是理論上吞吐率也是最差的。
3)acks = 1: 表示leader副本必須應答此produce請求並寫入訊息到本地日誌,之後produce請求被認為成功。如果此時leader副本應答請求之後掛掉了,訊息會丟失。這是個這種的方案,提供了不錯的永續性保證和吞吐
8、retries:producer重試的次數設定(kafka.producer.retries=0)
kafka自帶兩個效能測試指令碼:
1、kafka-producer-perf-test.sh引數
說明--topic
指定topic名稱
--num-records
傳送的總訊息條數
--record-size
傳送訊息的大小,單位bytes
--producer-props
設定producer的引數,可新增多個值,
如bootstrap.servers=kafka1:9092設定broker的位址
--throughput
吞吐量限制,-1表示無限制
例:sh kafka-producer-perf-test.sh --topic mysecondtest --num-records 10000000 --record-size 100 --producer-props bootstrap.servers=kafka1:9092,kafka2:9092,kafka3:9092 acks=0 batch.size=16384 linger.ms=1 buffer.memory=33554432 retries=0 --throughput -1
2、kafka-consumer-perf-test.sh引數
說明--topic
指定消費的topic名稱
--broker-list
broker的列表
--message-size
訊息大小,單位bytes
--messages
消費的訊息條數
--group
指定consumer group
--threads
設定消費的執行緒數
例:sh kafka-consumer-perf-test.sh --broker-list kafka1:9092,kafka2:9092,kafka3:9092 --message-size 10000 --messages 100000 --topic mysecondtest --group test-consumer-group --threads 1
Kafka的安裝和簡單例項測試及遇到的問題
安裝的命令如下 這樣,kafka基本就算是安裝好了。接下來,進行一些簡單的測試 首先新開啟乙個終端,輸入 cd usr local kafka bin zookeeper server start.sh config zookeeper.properties 這個目的是啟動zookeeper伺服器。...
kafka集群的搭建及測試(20191218更新)
20191218更新 目前複習到kafka集群,然後回來看了看之前寫的這篇文章。真的是寫的亂七八糟,向之前所有搜到這篇文章的童鞋致歉!又重新整理了一篇 kafka集群 偽分布式 的搭建及整合springboot 比這篇有條理,也算是隨著年齡增長,自己也在進步吧。o o 以下是原回答 準備工作 kaf...
Kafka簡介,安裝及簡單的操作
kafka的介紹 kafka 是分布式發布 訂閱訊息系統,即,kafka是一種分布式的訊息佇列工具。kafka特點 a.高吞吐量 kafka每秒可以生產約25萬訊息 50mb 每秒可以處理55萬訊息 110mb b.持久化資料儲存 可進行持久化操作。將訊息持久化到磁碟,按順序讀寫。據測試按順序磁碟讀...