Фасадът достъпва 10 вътрешни услуги (всяка по 100-300 ms) плюс глобална услуга в Китай (500 ms), общото време за отговор е около 3,5 секунди. Как бихте решили този проблем, за да ускорите обработката?
Golang
Как бихте получили списък с незаблокираните продавачи с един заявка, ако имате таблица с всички продавачи и друга само с блокираните продавачи?
Говорихте за модел на четене с Redis. Redis беше репликиран между центровете за данни?
Ако направите синхронен заявка към базата данни или съседна услуга и заявката отнема 5 секунди, какво ще се случи с нишката на операционната система, на която е стартирана услугата, докато заявката се изпълнява?
Имаш ли въпроси към колегата си?
Имали ли сте един сервис-шлюз на входа, с който комуникираха всички партньори (B2B)? В колко инстанции работеше той?
Ако една от услугите, които използваш, върне грешка, какво ще направиш и как ще го обработиш, ако има канал?
Как да не ходите изобщо на услуга, която със сигурност ще се срути или ще бъде недостъпна?
Redis държеше данните само в паметта или имаше fallback на диск? Какво ще се случи, ако Redis падне?
Как се изчисляваше RPS — просто събирахте натоварването на всички дръжки, или как?
Може би трябва да започнем да използваме горутините, за да увеличим скоростта, например, десет пъти по-бързо при използване на десет горутини?
Ако има голяма задача, например файл с размер 10 GB с настройките по редове, и трябва да обработите всеки ред (например, да поставите точка в края), биха ли помогнали горутините да ускорят тази работа?
В езика Go има горутини — леки потоци. Можеш ли да обясниш как разбираш кога трябва да използваш горутина и кога не?
Страхуваш ли се от тайм-трекера? Защо?
Ако използвате канали за събиране на резултати от услуги, колко канала ще са необходими за организирането на този механизъм?
Колко дата центъра имате: един или няколко?
Как да разберете къде е тесният участък при обработката на файл — ако обработката по редове изглежда бавна, а горутините обработват в цикъл?
Как реализирахте атомарността на записите в Redis? Какъв алгоритъм използвахте (Lua скрипт)?
Каза, че имаш услуга, която слуша Kafka и обновява кеша в Redis, нали?
Какво би предавал вътре в този канал (каква структура на данните)?