簡體   English   中英

如何使用Samza在Kafka主題上創建分區?

[英]How can you create a partition on a Kafka topic using Samza?

我有一些Samza作業正在運行,它們全部從Kafka主題讀取消息並將新消息寫入新主題。 要發送新消息,我正在使用Samza內置的OutgoingMessageEnvelope。 還使用MessageCollector發送新消息。 看起來像這樣:

collector.send(new OutgoingMessageEnvelope(SystemStream, newMessage))

有沒有一種方法可以用來將分區添加到Kafka主題? 例如根據用戶ID進行分區或類似的操作。

或者,如果有更好的方法,我想聽聽!

您應該能夠使用分區鍵發送消息,

    public OutgoingMessageEnvelope(SystemStream systemStream,
                               java.lang.Object partitionKey,
                               java.lang.Object key,
                               java.lang.Object message)
Constructs a new OutgoingMessageEnvelope from specified components.
Parameters:
systemStream - Object representing the appropriate stream of which this envelope will be sent on.
partitionKey - A key representing which partition of the systemStream to send this envelope on.
key - A deserialized key to be used for the message.
message - A deserialized message to be sent in this envelope.

使用此方法將對數據進行分區。 但是我認為,如果您正在考慮以編程方式控制分區數,則應使用kafka API創建/更改此處提到的主題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM