Golang
Wie stellt man sicher, dass nur einer der drei Worker-Prozesse auf einem Host ausgeführt wird (Leader Election)?
Erzählen Sie mir vom Kontext in Go: Arten, Hierarchie, Eigenschaften von untergeordneten Kontexten. Wie erstellt man einen untergeordneten Kontext, der vom Elternteil unabhängig ist?
/* Es gibt eine Anwendung mit einer Microservice-Architektur. Ein Microservice kann durch eine Backend-Schnittstelle abstrahiert werden. Um auf eine Instanz des Microservice zuzugreifen, kann der Typ BackendImpl verwendet werden, der bereits implementiert ist. Jeder Microservice hat mehrere Dutzend laufende Instanzen, die jeweils unter ihrer eigenen Adresse addr erreichbar sind. Allerdings sind einzelne Instanzen des Microservice nicht zuverlässig: sie können abstürzen, nicht erreichbar sein oder überlastet sein. Daher müssen Sie den Typ Balancer implementieren, der ebenfalls die Backend-Schnittstelle implementiert und das Client-seitige Load-Balancing zwischen den Instanzen des Microservice durchführt, wobei jedes Mal die **am wenigsten belastete** Instanz ausgewählt wird. */ type Request interface{} type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr enthält ip:port einer bestimmten Instanz func NewBackend(addr string) *BackendImpl type Balancer struct { // TODO } var _ Backend = &Balancer{} // addrs enthalten die Adressen aller balancierten Instanzen func NewBalancer(addrs []string) *Balancer { // TODO }
Mit welchen Datenbanken haben Sie gearbeitet und wie tief?
Was ist etcd und warum wurde es als Speicher für Kubernetes gewählt? Welche Eigenschaften hat es?
Bist du in Moskau?
Haben Sie mit Architektur gearbeitet? Erzählen Sie ein paar architektonische Lösungen
Sie haben einen Dienst, der viele Goroutines spawn. Wie würden Sie die Anzahl der gleichzeitig laufenden Goroutines begrenzen?
Was ist eine Zeichenkette in Go? Was passiert, wenn man versucht, das erste Zeichen der Zeichenkette über den Index zu ändern?
Was weißt du über den Scheduler für Goroutines in Go?
Haben Sie die Logistikrouten erstellt und berechnet?
Wie organisiert man die Architektur für eine Anfrage, die Geschäftslogik ausführt, einen externen Dienst (Google) aufruft und das Ergebnis in der Datenbank speichert? Beschreiben Sie es schichtweise von oben nach unten.
Wie sieht ein Array von Strings in der Syntax von Protocol Buffers aus?
Wie funktionieren HTTPS und TLS? Was ist ein Zertifikat und wie überprüft der Browser es?
Wie synchronisiert man Worker über PostgreSQL (verteiltes Lock in der Datenbank)?
Erzählen Sie uns von den Transaktionsisolationsebenen: Read Uncommitted, Read Committed, Repeatable Read, Serializable.
Was stellt den Datentyp string in Go dar?
Was passiert, wenn die Kapazität eines Slices erschöpft ist und ein weiteres Element hinzugefügt wird?
Ist der Primärschlüssel ein Index?
Erzählen Sie vom Fan-In-Muster, wofür es verwendet wird?