Wie würdest du mit einer einzigen Abfrage die Liste der nicht gesperrten Verkäufer erhalten, wenn du eine Tabelle mit allen Verkäufern und eine andere nur mit gesperrten Verkäufern hast?
Golang
Die Fassade greift auf 10 interne Dienste zu (je 100-300 ms) sowie auf einen globalen Dienst in China (500 ms), die gesamte Antwortzeit beträgt etwa 3,5 Sekunden. Wie würdest du dieses Problem lösen, um die Verarbeitung zu beschleunigen?
Wenn du eine synchrone Anfrage an die Datenbank oder einen benachbarten Dienst stellst und die Anfrage 5 Sekunden dauert, was passiert mit dem Betriebssystem-Thread, auf dem der Dienst läuft, während die Anfrage ausgeführt wird?
Wenn einer der Dienste, die du nutzt, einen Fehler zurückgibt, was wirst du tun und wie wirst du das behandeln, wenn du einen Kanal hast?
Hatten Sie an der Eingangsseite nur ein Service-Gateway, mit dem alle Partner (B2B) kommunizierten? In wie vielen Instanzen lief es?
Hast du Fragen an den Kollegen?
Wie man vermeiden kann, überhaupt zu einem Service zu gehen, der garantiert ausfallen wird oder nicht erreichbar ist?
Hielt Redis die Daten ausschließlich im Arbeitsspeicher oder gab es eine Backup auf die Festplatte? Was passiert, wenn Redis abstürzt?
Im Go-Programmiersprache gibt es Goroutines — leichte Threads. Kannst du erklären, wie du verstehst, wann du eine Goroutine verwenden solltest und wann nicht?
Hast du Angst vor dem Zeiterfassungstracker? Warum?
Wenn es eine große Aufgabe gibt, zum Beispiel eine 10-GB-Datei mit Zeileneinstellungen, und jede Zeile verarbeitet werden muss (zum Beispiel einen Punkt am Ende setzen), würden Goroutines helfen, diese Arbeit zu beschleunigen?
Wie viele Kanäle wären erforderlich, um diesen Mechanismus zu organisieren, wenn Kanäle zur Sammlung der Ergebnisse von Diensten verwendet werden?
Wie viele Rechenzentren hatten Sie: eins oder mehrere?
Wie wurde der RPS berechnet — hast du einfach die Last aller Hebel addiert oder wie?
Arbeiten Sie hauptsächlich remote?
Wie haben Sie die Atomarität der Schreibvorgänge in Redis umgesetzt? Welchen Algorithmus haben Sie verwendet (Lua-Skript)?
Wie erkennt man die Engstelle bei der Dateiverarbeitung — wenn die Zeilenverarbeitung langsam erscheint, aber die Goroutinen in einer Schleife verarbeiten?
Du hast gesagt, dass du einen Service hast, der Kafka hört und den Cache in Redis aktualisiert, richtig?
Was würdest du innerhalb dieses Kanals übertragen (welche Datenstruktur)?
Gab der Dienst einfach nur Daten aus dem Cache weiter, oder führte er noch eine andere Logik aus?