Wenn ein interner gRPC-Dienst direkt erreicht werden soll, bietet gRPC-Go für diesen Weg eine Verbindungsoption:

conn, err := grpc.NewClient(
    "dns:///rpc.internal.example:443",
    grpc.WithTransportCredentials(transportCredentials),
    grpc.WithNoProxy(),
)

Der grpc-Import ist google.golang.org/grpc. transportCredentials ist die vorhandene credentials.TransportCredentials-Konfiguration der Anwendung. Behandeln Sie err und schließen Sie conn über den normalen Client-Lebenszyklus.

WithNoProxy deaktiviert die Proxy-Nutzung für diesen ClientConn. Andere Clients und die Proxy-Umgebung des Prozesses bleiben unverändert. Das Ziel muss direkt aus dem Netzwerk der Anwendung erreichbar sein.

Die Option wird ignoriert, wenn WithDialer oder WithContextDialer einen eigenen Verbindungsweg bereitstellt; dieser Dialer entscheidet über das Routing. Die Upstream-API ist als experimentell gekennzeichnet, prüfen Sie sie daher gegen die installierte grpc-go-Version.

NewClient erstellt einen Client-Kanal, ohne zu belegen, dass eine Netzwerkverbindung zustande gekommen ist. Erst das folgende RPC- oder Verbindungsstatus-Ergebnis liefert diesen Nachweis. Das Umgehen eines Proxys erfordert nicht das Abschalten von TLS.

Ähnliche Artikel