Golang
Na ilu hostach działała usługa i ile instancji było uruchomionych?
Jak pracowałeś z WebSocket? Na poziomie konfiguracji infrastruktury czy tylko kod? Jakie technologie używałeś? Czy wystąpiły problemy z połączeniem na poziomie infrastruktury?
Czy możesz krótko opisać, z jakich usług składał się system i jak się ze sobą komunikowały?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) // dodać transakcję if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount // zabezpieczyć SELECT FOR UPDATE partner.Hold -= amount partner.Balance += amount if err := r.save(advertiser); err != nil { return err } if err := r.save(partner); err != nil { return err } r.totalPayouts++ return nil }
Co piszesz w Go — mikroserwisy czy usługi?
Który mechanizm jest w Go: dziedziczenie czy kompozycja?
Jak moglibyśmy obsługiwać zewnętrznie błędy, które występują w zadaniach, jeśli chcielibyśmy to zrobić?
Jak podłączyć profilator w Go? Jak robić profile?
Czy masz obecnie priorytety lub plany rozwoju?
Czy porównanie tej samej funkcji na posortowanej i nieposortowanej tablicy będzie miało różnicę w czasie wykonania? Czym jest przewidywanie gałęzi i potok procesora?
Czy przeprowadzano testy obciążeniowe? Jakie było obciążenie?
Jak obliczano RPS — po prostu sumowałeś obciążenie wszystkich dźwigni, czy jak?
Co robiłeś z nieprawidłowymi wiadomościami po ręcznej obróbce? Jak to wyglądało technicznie?
Jak zorganizowana jest komunikacja między mikroserwisami?
Czy teraz pracujesz?
Jak się odnosisz do testów? Do czego są potrzebne testy?
Jakie gwarancje dostawy obsługujesz, mówiąc o Kafka?
Jak działa tablica haszująca? Jakie są podstawowe zasady i główne wymagania?
Od kiedy będziesz dostępny?
Jak unikaliście duplikatów wiadomości w Kafka?