Golang
Jak zapewnić wyłączną realizację jednego z trzech procesów roboczych na jednym hoście (wybór lidera)?
Opowiedz o kontekście w Go: rodzaje, hierarchia, cechy kontekstów podrzędnych. Jak utworzyć kontekst podrzędny niezależny od rodzica?
/* Istnieje aplikacja z architekturą mikroserwisów. Mikroserwis można abstrakcyjnie reprezentować za pomocą interfejsu Backend. Aby uzyskać dostęp do instancji mikroserwisu, można użyć typu BackendImpl, który jest już zaimplementowany. Każdy mikroserwis ma kilkadziesiąt uruchomionych instancji, z których każda jest dostępna pod własnym adresem addr. Jednak pojedyncze instancje mikroserwisu nie są niezawodne: mogą się zawiesić, być niedostępne lub przeciążone. Dlatego musisz zaimplementować typ Balancer, który również implementuje interfejs Backend i wykonuje balansowanie obciążenia po stronie klienta między instancjami mikroserwisu, wybierając za każdym razem **najmniej obciążoną** instancję. */ type Request interface{} type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr zawiera ip:port konkretnej instancji func NewBackend(addr string) *BackendImpl type Balancer struct { // TODO } var _ Backend = &Balancer{} // addrs zawierają adresy wszystkich balansowanych instancji func NewBalancer(addrs []string) *Balancer { // TODO }
Z jakimi bazami danych pracowałeś i jak głęboko?
Czym jest etcd i dlaczego został wybrany jako magazyn dla Kubernetes? Jakie ma właściwości?
Czy jesteś w Moskwie?
Czy pracowałeś z architekturą? Opowiedz o kilku rozwiązaniach architektonicznych
Masz usługę, która tworzy wiele goroutine. Jak ograniczyłbyś liczbę goroutine działających jednocześnie?
Czym jest łańcuch w Go? Co się stanie, jeśli spróbujesz zmienić pierwszy znak łańcucha za pomocą indeksu?
Co wiesz o planatorze goroutines w Go?
Czy to Ty tworzyłeś i obliczałeś trasy logistyczne?
Jak zorganizować architekturę dla żądania, które wykonuje logikę biznesową, wywołuje zewnętrzną usługę (Google) i zapisuje wynik w bazie danych? Opisz warstwami od góry do dołu.
Jak wygląda tablica łańcuchów w składni Protocol Buffers?
Jak działa HTTPS i TLS? Czym jest certyfikat i jak go sprawdza przeglądarka?
Jak zsynchronizować workerów przez PostgreSQL (blokada rozproszona w bazie danych)?
Opowiedz o poziomach izolacji transakcji: Read Uncommitted, Read Committed, Repeatable Read, Serializable.
Czym jest typ danych string w Go?
Co się dzieje, gdy pojemność slice'a się wyczerpie i dodany zostanie kolejny element?
Czy klucz główny jest indeksem?
Opowiedz o wzorcu Fan-In, do czego służy?