/ / Ako môžete vytvoriť oblasť na tému Kafka pomocou Samza? - scala, apache-kafka, rozdelenie, apache-samza

Ako môžete vytvoriť oddiel na tému Kafka pomocou nástroja Samza? - scala, apache-kafka, rozdelenie, apache-samza

Mám niekoľko pracovných miest v Samze, v ktorých prebieha všetko čítaniesprávy z témy Kafka a písania novej správy na novú tému. Ak chcete poslať nové správy, používam Samza "" postavený v OutgoingMessageEnvelope. Na poslanie novej správy používam aj MessageCollector. Vyzerá to takto:

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

Existuje spôsob, ako to môžem použiť na pridanie oddielov do témy Kafka? Napríklad rozdelenie na ID užívateľa alebo niečo podobné.

Alebo ak je lepší spôsob, rád by som to počul!

odpovede:

3 pre odpoveď č. 1

Mali by ste byť schopní odosielať správy pomocou tlačidla a kľúč,

    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.

Použitie tejto metódy rozdelí vaše údaje. Myslím si však, že ak sa snažíte kontrolovať počet partícií programovo, mali by ste použiť API kafka na vytvorenie / zmenu témy ako je uvedené. tu