Ако дойдат 1000 едновременни заявки, ще се създадат ли 1000 нишки на операционната система? Какво ще се случи със сървиса в този случай?
Golang
Има фасада, която агрегира данни от 10 услуги, всяка отговаря за 100 ms, общо около една секунда. Как бихте решили този проблем, за да върне endpoint-ът данните по-бързо?
Ще продължиш ли да посещаваш останалите услуги за данни, ако първата от 11 услуги върне грешка?
Или Redis беше в един дата център, и всички към него се обръщаха?
По какъв принцип избрахте архитектурата и границите на услугите?
Как да решим проблема с data race, за който говорихме?
Redis ли беше във всички трите дата центъра?
Какви могат да бъдат страничните ефекти при използването на горутин за обработка на файл, към какво трябва да сме готови?
Имали сте три дата центъра — как беше организирана схемата за репликация/резервиране между тях?
Центровете за данни бяха пълни копия един на друг или се допълваха? Просто маршрутизирахте трафика между тях?
А ако горутините пишат в една и съща линия/буфер, възможен ли е такъв проблем?
Кое поле за блокиране имаш предвид (уточнение относно денормализацията, флаг is_blocked)?
Как могат горутините да «изтекат» (Leak)?
Събитието пристига в първия дата център от Kafka, ние го улавяме и го съхраняваме в Redis. Как тези данни попаднаха във всички три дата центъра?
Има ли други начини, освен каналите, за организиране на работата с горутините?
Във вашето резюме сте написали, че сте оптимизирали SQL заявки. Как според вас би изглеждал планът за изпълнение на заявка за избор на незаблокирани продавачи (EXPLAIN)?
Можеш ли да разкажеш за алгоритъма за одитиране (сверка на данни)? Участва ли в това? Как протече?
Вашето резюме посочва 50-80 хиляди RPS. Какъв беше този сервис и какво правеше?
Говорихте за модел на четене с Redis. Redis беше репликиран между центровете за данни?
Ако една от услугите, които използваш, върне грешка, какво ще направиш и как ще го обработиш, ако има канал?