编辑此页面

使用 xDS gRPC

本页面介绍了如何在 Quarkus 应用程序中启用 xDS gRPC 用法。

由于在运行本机 IT 测试时阴影 grpc-netty 库存在问题,因此此 Quarkus xDS gRPC 集成目前不支持构建本机可执行文件。

配置您的项目

将 Quarkus gRPC xDS 扩展添加到你的构建文件

pom.xml
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-grpc-xds</artifactId>
</dependency>
build.gradle
implementation("io.quarkus:quarkus-grpc-xds")
这会传递性地添加 io.quarkus:quarkus-grpc 扩展依赖项。

服务器配置

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

显式启用 XDS 的使用。

环境变量: QUARKUS_GRPC_SERVER_XDS_ENABLED

显示更多

布尔值

false

使用安全凭据。

环境变量: QUARKUS_GRPC_SERVER_XDS_SECURE

显示更多

布尔值

false

服务器配置示例

要启用服务器 xDS,请使用以下配置。

必须在服务器上显式启用 xDS,然后验证你是否在正确的 xDS 服务器端口(默认为 9000)上使用它。 如果你想使用 XdsServerCredentials,请将 xds.secure 设置为 true

quarkus.grpc.server.xds.enabled=true
#quarkus.grpc.server.xds.secure=true
quarkus.grpc.server.port=30051
配置 xDS 后,plain-text 会自动禁用。

客户端配置

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

显式启用 XDS 的使用。

环境变量: QUARKUS_GRPC_CLIENTS__CLIENT_NAME__XDS_ENABLED

显示更多

布尔值

false

使用安全凭据。

环境变量: QUARKUS_GRPC_CLIENTS__CLIENT_NAME__XDS_SECURE

显示更多

布尔值

false

可选的显式目标。

环境变量: QUARKUS_GRPC_CLIENTS__CLIENT_NAME__XDS_TARGET

显示更多

字符串

使用 xDS 目标属性时,不使用名称解析器、主机和端口

客户端配置示例

要启用客户端 xDS,请使用以下配置。

你可以显式启用 xDS,也可以使用 xds 名称解析器,并确保将其指向正确的 xDS 服务器端口(默认为 9000)。 如果你想使用 XdsChannelCredentials,请将 xds.secure 设置为 true

#quarkus.grpc.clients.<client-name>.xds.enabled=true
#quarkus.grpc.clients.<client-name>.xds.secure=true
quarkus.grpc.clients.<client-name>.name-resolver=xds
quarkus.grpc.clients.<client-name>.port=30051
配置 xDS 后,plain-text 会自动禁用。

Kubernetes 配置示例

以下是在 Kubernetes 中使用 Istio Service Mesh 时(必需)的额外配置示例。

quarkus.kubernetes.ports.grpc.container-port=30051
quarkus.kubernetes.annotations."inject.istio.io/templates"=grpc-agent
quarkus.kubernetes.annotations."proxy.istio.io/config"={"holdApplicationUntilProxyStarts": true}

相关内容