Kotlin
Wie löst man das Problem der gleichzeitigen Aktualisierung einer Entität aus zwei Kafka-Topics (ein Topic überschreibt die Änderungen des anderen)?
Hast du HQL, Native Query, JDBC direkt verwendet? Batching in Hibernate?
Erzählen Sie mir vom Monitoring und den Metriken im Projekt (Prometheus, Grafana)
Erzähle vom Sharding von Datenbanken
Wurden Kafka-Transaktionen verwendet (Exactly-Once-Semantik)?
Wie funktioniert der Dirty Checking-Mechanismus in Hibernate?
Erklären Sie die Replikation in PostgreSQL: Master-Slave, was passiert bei einem Ausfall der Replik
Erzählen Sie mir mehr über den Abrechnungsdienst: was wurde gespeichert, wie interagierten sie mit dem Auftragnehmer?
// buchung(sitz_id, benutzer_id) PostgreSQL Begin Transaction(read_commited) seat = select * from seats where id = seat_id for update if(seat == null || seat.status == "booked") rollback return error("Sitz ist nicht verfügbar") insert into bookings (user_id, seat_id, status, created_at) values (user_id, ...) update seats set status = 'booked' where id = seat_id commit return success()
Weißt du, was Service Mesh in Kubernetes ist?
/* AUSWAHL links.K, links.V1, rechts.V2 VON links JOIN rechts AUF links.K = rechts.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> links, List<Pair<K, V2>> rechts) { return null; } private static class Pair<A, B> { private A erster; private B zweiter; Pair(A erster, B zweiter) { this.erster = erster; this.zweiter = zweiter; } } private static class Triple<A, B, C> { private A erster; private B zweiter; private C dritter; Triple(A erster, B zweiter, C dritter) { this.erster = erster; this.zweiter = zweiter; this.dritter = dritter; } }
Erzählen Sie vom Partitionieren in PostgreSQL
Erzählen Sie mir von den Isolationsstufen von Transaktionen
Wie war die Belastung der Dienste? Welche Optimierungen wurden angewendet?
Erzählen Sie mir von optimistischen und pessimistischen Sperren, wann sie angewendet werden?
Erzählen Sie mir von sich und Ihrer Berufserfahrung
/*Angenommen, eine Zeichenkette wird gegeben, es ist notwendig, eine Funktion zu implementieren, um die Korrektheit der Klammerangabe zu überprüfen. Jede öffnende Klammer muss eine entsprechende schließende Klammer haben. Öffnende und schließende Klammern müssen in der richtigen Reihenfolge stehen. Klammerarten: "{", "}", "(", ")", "[", "]". Eingabe: "([]){}[(()())()]" Ergebnis: true Eingabe: "[(])" Ergebnis: false Weil die Klammern 2 und 3 falsch angegeben sind, erscheint die schließende ']' vor der schließenden '(' */ public boolean check(String s){ Deque<Character> stack = new ArrayDeque<>(); Map<Character, Character> map = Map.of( ')', '(', ']', '[', '}', '{' ); // ((( for( char c : s.toCharArray()){ if(map.containsValue(c)){ stack.push(c); } else if(map.containsKey(c)){ if( stack.isEmpty() || stack.pop() != map.get(c)){ return false; } } } return stack.isEmpty(); }
Wie kontrolliert man die Belastung an den Griffen (Rate Limiting)?
Hast du Kotlin verwendet? Hast du Erfahrung?