Junior — Middle
Ako je určený sled spracovania správ v rade?
sobes.tech AI
Odpoveď od AI
Poradie spracovania správ v rade je zvyčajne určené ich poradím príchodu — prvý prišlý prvý sa spracováva (FIFO: First In, First Out). V Go, ak sa kanál používa ako rad, poradím prijímania správ zodpovedá poradí ich odoslania, za predpokladu, že neexistujú súťažné operácie, ktoré menia poradí.
Ak je rad implementovaný pomocou externých knižníc alebo brokerov správ (napríklad RabbitMQ, Kafka), poradí spracovania závisí od konkrétnej implementácie a nastavení, ale vo väčšine prípadov je sekvencia v rámci jedného radu alebo partície garantovaná.
Príklad s kanálom v Go:
ch := make(chan string, 3)
ch <- "msg1"
ch <- "msg2"
ch <- "msg3"
fmt.Println(<-ch) // Vytlačí "msg1"
fmt.Println(<-ch) // Vytlačí "msg2"
fmt.Println(<-ch) // Vytlačí "msg3"
Takže poradí spracovania správ zodpovedá poradí ich odoslania do kanála.