Mit der Popularität der Microservice-Architektur wird das API-Gateway als unverzichtbarer Bestandteil der Microservice-Architektur von Unternehmen zunehmend geschätzt. Das API-Gateway fungiert hauptsächlich als externe Fassade, bietet einen Einstiegspunkt und ist für eine Reihe von Funktionen wie Protokollkonvertierung, verteilten Lastausgleich, Sicherheitsauthentifizierung und API-Verwaltung verantwortlich. In vielen Anwendungsszenarien löst das API-Gateway nicht nur viele Probleme auf technischer Ebene, sondern erzielt auch Vorteile wie schnelle Iteration und flexible Erweiterung auf Geschäftsebene.
In diesem Artikel erfahren Sie, wie Sie mit der Go-Sprache ein Kong-basiertes API-Gateway erstellen, einschließlich der Verwendung von Kong zum Verwalten von APIs und Plugins sowie der Verwendung der Go-Sprache und der Kong-API zum Betreiben der Kong-Konfiguration.
1. Einführung in Kong
Kong ist ein Open-Source-API-Gateway, das eine vollständige Reihe von API-Verwaltungs- und Sicherheitsfunktionen bietet und in einer Vielzahl von Umgebungen ausgeführt werden kann. Es bietet hauptsächlich Verwaltungstools wie Lastausgleich, Diensterkennung, Routing, Authentifizierung, Autorisierung, Strombegrenzung, Überwachung und Plug-Ins. Kong verwendet Nginx als Proxyserver und nutzt den Plug-in-Mechanismus, um dem HTTP-Verkehr verschiedene erweiterte Funktionen hinzuzufügen. Die Plug-Ins von Kong können nach Bedarf aktiviert werden, sodass Kong verschiedene spezifische Geschäftsszenarien und -anforderungen erfüllen kann, weshalb es auch sehr beliebt ist.
2. Verwenden Sie Kong zum Verwalten von APIs und Plugins
Sie können über die Installationsanleitung auf der offiziellen Website von Kong verschiedene Umgebungen für die Installation auswählen. Hier ist Ubuntu als Beispiel:
$ echo "deb https://kong.bintray.com/kong-deb `lsb_release -sc` main" | sudo tee -a /etc/apt/sources.list $ curl -o bintray.key https://bintray.com/user/downloadSubjectPublicKey?username=bintray $ sudo apt-key add bintray.key $ sudo apt-get update && sudo apt-get install -y kong
Nach erfolgreicher Installation wird die Kong-Konfigurationsdatei im /etc/kong
-Verzeichnis generiert.
$ kong start
Verwenden Sie die Admin-API von Kong, um APIs zu verwalten.
$ curl -i -X POST --url http://localhost:8001/apis/ --data 'name=helloworld' --data 'uris=/hello' --data 'upstream_url=http://example.com/hello'
Das obige Beispiel erstellt über die Admin-API eine API mit dem Namen helloworld, der Routing-URI ist /hello und die Upstream-Serveradresse ist http://example.com/hello. Greifen Sie auf diese Weise einfach auf http://localhost zu :8000/hello , können Sie auf http://example.com/hello zugreifen.
Mit Kong können Sie ganz einfach Plugins hinzufügen und so die Funktionen der API weiter verbessern.
$ curl -i -X POST --url http://localhost:8001/apis/helloworld/plugins/ --data 'name=key-auth'
Das obige Beispiel fügt der helloworld-API über die Admin-API ein Plug-in namens „key-auth“ hinzu. Dieses Plugin wird zur Authentifizierung basierend auf dem API-Schlüssel verwendet.
3. Verwenden Sie die Go-Sprache und die Kong-API, um die Kong-Konfiguration zu verwalten.
Zusätzlich zur Verwendung der Admin-API zur Verwaltung von APIs und Plugins können Sie auch die von Kong bereitgestellte RESTful-API für eine detailliertere Steuerung verwenden. Sie ist vollständig konsistent Mit dem internen Datenmodell von Kong ist es bequemer, die Admin-API zu starten.
Hier verwenden wir die Go-Sprache und kombinieren sie mit dem Kong Client SDK, um die Kong-Konfiguration durchzuführen.
$ go get github.com/Kong/go-kong/kong
conf := kong.Configuration{ KongAdminURL: "http://localhost:8001", // Kong Admin接口地址 KongURL: "http://localhost:8000", // Kong代理服务地址 }
api := &kong.Api{ Name: kong.String("helloworld"), RequestHost: kong.String("example.com"), UpstreamURL: kong.String("http://example.com/hello"), } route := &kong.Route{ Name: kong.String("hello-route"), Paths: kong.StringSlice([]string{"/hello"}), Methods: kong.StringSlice([]string{"GET"}), }
service, err := kong.CreateServiceWithDefaults(conf, api) // 用默认配置创建Service if err != nil { panic(err) } route, err = kong.CreateRouteWithDefaults(conf, route, service) if err != nil { panic(err) }
Zusammenfassung
In diesem Artikel wird der Prozess zum Erstellen eines API-Gateways mithilfe der Go-Sprache und des Kong Client SDK vorgestellt. Mit Kong können Sie schnell ein API-Gateway erstellen, APIs und Plug-Ins verwalten und Funktionen wie Authentifizierung und Strombegrenzung implementieren. Kong kann mithilfe der Go-Sprache und des Kong Client SDK weiter gesteuert und verwaltet werden. Diese Tools können die Skalierbarkeit und Verwaltung von API-Gateways verbessern, sodass Microservices das Unternehmen besser unterstützen können.
Das obige ist der detaillierte Inhalt vonErstellen Sie ein API-Gateway mit der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!