Sobes.tech
Middle — Middle+

Lehet-e konkrét üzenetelosztást rendelni a rendszer partícióihoz?

sobes.tech MI

Válasz az MI-től

Igen, olyan üzenetküldő rendszerekben, mint például az Apache Kafka, meghatározható az üzenetek konkrét elosztása partíciók között.

Ez a kulcs (partition key) segítségével valósítható meg, amit a producer használ annak meghatározására, hogy az üzenet melyik partícióba kerüljön. Ha a kulcs ugyanaz, minden ugyanazzal a kulccsal küldött üzenet ugyanabba a partícióba kerül, biztosítva a sorrendet.

Példa C#-ban Kafka Producer-rel:

var config = new ProducerConfig { BootstrapServers = "localhost:9092" };

using var producer = new ProducerBuilder<string, string>(config).Build();

string key = "user-123"; // kulcs a partícióhoz
string value = "üzenet a felhasználó 123 számára";

var result = await producer.ProduceAsync("téma-neve", new Message<string, string> { Key = key, Value = value });

Console.WriteLine($"Üzenet küldve a {result.Partition} partícióba");

Így az üzenetkulcsok kontrollálásával kezelhető a partíciók közötti elosztás.