11 Stimmen

Seitenansichtszähler wie bei StackOverFlow

Was ist der beste Weg, um die Seite Ansicht Zähler wie die, die sie haben hier auf der Website, wo jede Frage hat eine "Views" Zähler?

Berücksichtigung von Leistungs- und Skalierbarkeitsfragen.

0voto

stephbu Punkte 5051

Ich bin ein Fan von @Guillaume's Art der Umsetzung. Ich verwende einen transparenten GIF-Handler und In-Memory-Warteschlangen, um Sätze von Änderungen zu stapeln, die dann in regelmäßigen Abständen mit einem separaten Thread in global.asax erstellt gespült werden.

Der Handler implementiert IHttpHandler, verarbeitet die Anforderungsparameter, z. B. Seiten-ID, Sprache usw., aktualisiert die Warteschlange und schreibt dann als Antwort das transparente GIF.

Durch das Verschieben von persistenten Änderungen in einen separaten Thread als die Benutzeranforderung können Sie auch viel besser mit potenziellen Serialisierungsproblemen umgehen, wenn mehrere Server usw. laufen.

Natürlich können Sie auch einfach jemand anderen dafür bezahlen, die Arbeit zu erledigen, z. B. mit transparenten Gifs.

0voto

Eduardo Molteni Punkte 37808

Für mich ist es am besten, ein Feld in der Fragetabelle zu haben und es zu aktualisieren, wenn auf die Frage zugegriffen wird

UPDATE Questions SET views = views + 1 WHERE QuestionID = x

Anwendungsobjekt: IMO ist nicht skalierbar, da es zu einem hohen Speicherverbrauch kommen kann, wenn auf mehr Fragen zugegriffen wird.
Page_views-Tabelle: nicht nötig, Sie müssen einen aufwendigen Join nach

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X