Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
HTTP-Header-Routing-Muster
Header-basiertes Routing ermöglicht es Ihnen, für jede Anfrage den richtigen Service als Ziel festzulegen, indem Sie in der HTTP-Anfrage einen HTTP-Header angeben. Wenn Sie den Header x-service-a-action: get-thing
senden, können Sie beispielsweise get thing
von Service A
abrufen. Der Pfad der Anfrage ist immer noch wichtig, da er Hinweise darauf bietet, an welcher Ressource Sie arbeiten möchten.
Sie können das HTTP-Header-Routing nicht nur für Aktionen verwenden, sondern auch als Mechanismus für das Versions-Routing, das Aktivieren von Feature-Flagen, A/B-Tests oder ähnlichen Anforderungen. In der Realität werden Sie Header-Routing wahrscheinlich zusammen mit einer der anderen Routing-Methoden verwenden, um robuste APIs zu erstellen.
Die Architektur für HTTP-Header-Routing hat typischerweise eine einfache Routing-Schicht vor den Microservices, die zum richtigen Service weiterleitet und eine Antwort zurückgibt, wie im folgenden Diagramm dargestellt. Diese Routing-Schicht könnte alle oder nur einige Services umfassen, um einen Vorgang wie das versionsbasierte Routing zu ermöglichen.
Vorteile
Konfigurationsänderungen erfordern nur minimalen Aufwand und können einfach automatisiert werden. Außerdem ist diese Methode flexibel und bietet kreative Möglichkeiten, um lediglich bestimmte Vorgänge, die Sie von einem Service erwarten, darzustellen.
Nachteile
Wie bei der Hostnamen-Routing-Methode geht das HTTP-Header-Routing davon aus, dass Sie die volle Kontrolle über den Client haben und benutzerdefinierte HTTP-Header bearbeiten können. Proxys, Content Delivery Networks (CDNs) und Load Balancer können die Header-Größe einschränken. Obwohl dies wahrscheinlich nicht bedenklich ist, könnte es ein Problem darstellen, je nachdem, wie viele Header und Cookies Sie hinzufügen.