Kapitel 14. Der Kontext
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Server brauchen eine Möglichkeit, um Metadaten zu einzelnen Anfragen zu verarbeiten. Diese Metadaten lassen sich in zwei allgemeine Kategorien einteilen: Metadaten, die für die korrekte Bearbeitung der Anfrage erforderlich sind, und Metadaten darüber, wann die Bearbeitung der Anfrage beendet werden soll. Ein HTTP-Server könnte zum Beispiel eine Tracking-ID verwenden, um eine Kette von Anfragen durch eine Reihe von Microservices zu identifizieren. Er könnte auch einen Timer setzen, der Anfragen an andere Microservices beendet, wenn sie zu lange dauern.
Viele Sprachen verwenden threadlocal-Variablen, um diese Art von Informationen zu speichern und Daten mit einem bestimmten Ausführungsstrang des Betriebssystems zu verknüpfen. Das funktioniert in Go nicht, weil Goroutinen keine eindeutigen Identitäten haben, die zum Nachschlagen von Werten verwendet werden können. Außerdem fühlen sich Threadlocals wie Magie an: Werte gehen an einen Ort und tauchen an einem anderen auf.
Go löst das Problem der Anfragemetadaten mit einem Konstrukt namens " Kontext". Schauen wir uns an, wie man ihn richtig verwendet.
Was ist der Kontext?
Anstatt der Sprache eine neue Funktion hinzuzufügen, ist ein Kontext einfach eine Instanz, die die Context
Schnittstelle erfüllt, die im Paket context
definiert ist. Wie du weißt, fördert das idiomatische Go ...
Get Go lernen, 2. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.