Dies ist eine Interviewfrage: Entwerfen Sie ein verteiltes Back-End für die automatische Vervollständigung.Back-End für Auto-Vervollständigung
Ich würde es wie folgt beantworten:
Auto-complete eine Suche in einem Wörterbuch von einem bestimmten Suffix ist. Das Wörterbuch sollte wahrscheinlich als Trie organisiert sein. Das Wörterbuch ist aus den häufigsten Abfragen aufgebaut, aber es ist eine andere Geschichte.
Nun gehe ich davon aus, dass das Wörterbuch nicht häufig geändert wird (z. B. einmal am Tag statt in jeder Millisekunde). Daher können wir das Wörterbuch nur auf eine Reihe von Servern replizieren, die Abfragen zur automatischen Vervollständigung durchführen (z. B. mit einer Load-Balancer- und Round-Robin-Richtlinie).
Wir sollten auch über Wörterbuch nachdenken, aber das ist auch eine andere Geschichte.
Macht es Sinn? Fehle ich etwas?
Architektur Fragen sollte sie wirklich gefragt werden e: http://programmers.stackexchange.com/ Es interessiert mich nicht wirklich, aber manche tun es. –