kafka 生產者訊息分發策略

2021-10-02 03:17:18 字數 720 閱讀 9573

訊息是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 關閉資...