Как спроектировать message queue на Go?

Senior
148 просмотров
AFK Offer AI

Broker: принимает сообщения, персистит на диск (append-only log как Kafka), раздаёт consumers. Producer → topic → partition → consumer group. Каждая partition — файл с offset. Consumer коммитит offset. Retention по времени/размеру. Go: горутина на partition, mmap для быстрого чтения, batching для throughput. Replication через Raft для durability.

Следующий вопрос

Что выведет: m := map[string]int{"a":1}; for k, v := range m { fmt.Println(k, v); m["b"] = 2 }?