Sobes.tech
Middle — Middle+

Kas süsteemis on võimalik määrata sõnumite konkreetne jaotus partitsioonide vahel?

sobes.tech AI

Vastus AI-lt

Jah, sõnumivahetussüsteemides, nagu Apache Kafka, on võimalik määrata konkreetne sõnumite jaotus partition'ide vahel.

See saavutatakse sõnumi võtme (partition key) abil, mida kasutab tootja, et määrata, millisesse partition'isse sõnum suunata. Kui võti on sama, siis kõik selle võtmega sõnumid suunatakse samasse partition'i, tagades järjepidevuse.

Näide C#-s Kafka Producer'iga:

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

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

string key = "user-123"; // jaotuse võti
string value = "sõnum kasutajale 123";

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

Console.WriteLine($"Sõnum saadetud partition'isse {result.Partition}");

Selle kaudu saab sõnumite võtmeid kontrollides hallata jaotust partition'ide vahel.