Senior
Cum să faci ca toate evenimentele unui comand să ajungă într-o singură partiție Kafka?
sobes.tech AI
Răspuns de la AI
Pentru ca toate evenimentele legate de o comandă să ajungă într-o singură partiție Kafka, trebuie să folosiți o cheie (key) la trimiterea mesajelor, care identifică în mod unic comanda.
Kafka folosește cheia pentru a calcula partiția printr-o funcție hash. Dacă pentru toate evenimentele unei comenzi se folosește aceeași cheie (de exemplu, order_id), acestea vor ajunge în aceeași partiție.
Exemplu în Go cu sarama (client Kafka popular):
producer.Input() <- &sarama.ProducerMessage{
Topic: "orders",
Key: sarama.StringEncoder(orderID), // orderID — identificatorul comenzii
Value: sarama.StringEncoder(eventData),
}
Astfel, se garantează că toate evenimentele cu aceeași cheie vor fi în aceeași partiție, ceea ce este important pentru procesarea în ordine și coerență.