Как реализовать merge channels?

Middle
168 просмотров
AFK Offer AI

Классический паттерн — запустить по горутине на каждый входной канал, все пишут в один выходной. Используешь sync.WaitGroup чтобы закрыть выходной канал когда все входные закрылись. Альтернатива — reflect.Select для одной горутины без создания N горутин. Для двух каналов обычный select проще. Merge полезен в fan-in паттерне, когда несколько producer'ов и один consumer.

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

Как масштабировать websocket?