訊息是kafka中最基本的額資料單元,在kafka中,一條訊息由key、value兩部分構成,
在傳送一條訊息時,我們可以指定這個key,producer會根據key來判斷當前這條訊息應該
路由儲存到哪個partition。
預設情況下,kafka採用的是對key進行hash取模計算出分割槽。如果key為null,
則會隨機分配乙個分割槽。隨機是有一定的時間範圍限制,在"metadata.max.age.ms"時間範圍內,
如果key為null,則會只傳送到唯一的分割槽。該引數預設值為10分鐘
kafka給我們提供了自定義分割槽的介面 org.apache.kafka.clients.producer.partitioner
我們只需要實現重寫 partition 方法即可
public
class
producer
implements
partitioner
else
return partitionnum;
}@override
public
void
close()
@override
public
void
configure
(map?> configs)
}
kafka生產者分割槽策略
kafka生產者 分割槽策略 分割槽的原因 1 方便在集群中擴充套件,每個partition可以通過調整以適應它所在的機器,而乙個topic又 可以有多個partition組成,因此整個集群就可以適應任意大小的資料了 2 可以提高併發,因為可以以partition為單位讀寫了。分割槽的原則 1 指明...
Kafka之生產者
1 方便在集群中擴充套件,乙個topic可以有多個partition組成,而每個partition可以通過調整以適應它所在的機器 2 可以提高併發,因為可以以partition為單位讀寫 我們需要將生產者傳送的資料封裝成乙個producerrecord物件。1 指明partition的情況下,直接將...
kafka 生產者(二)
想要提高生產者的吞吐量可以通過調整一下4個引數來實現 batch.size 批次大小,預設16k linger.ms 等待時間,修改為5 100ms recordaccumulator 緩衝區大小,修改為64m 實現 public class customproducerparameters 關閉資...