Usando o xDS gRPC
Esta página explica como habilitar o uso do gRPC xDS em sua aplicação Quarkus.
This Quarkus xDS gRPC integration currently doesn’t support building native executables due to the issues with shaded grpc-netty library while running native IT tests. |
Configurando seu projeto
Adicione a extensão Quarkus gRPC xDS ao arquivo de compilação do seu projeto:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-grpc-xds</artifactId>
</dependency>
implementation("io.quarkus:quarkus-grpc-xds")
Isso adiciona de forma transitiva a dependência da extensão io.quarkus:quarkus-grpc .
|
Configurando servidor
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Tipo |
Padrão |
---|---|---|
Explicitly enable use of XDS. Environment variable: Show more |
boolean |
|
Use secure credentials. Environment variable: Show more |
boolean |
|
Exemplo de configuração do servidor
Para habilitar o servidor xDS, utilize a seguinte configuração:
xDS must be explicitly enabled on the server, then verify you use it on the right xDS server port (default is 9000).
If you want to use XdsServerCredentials
set xds.secure
to true
.
quarkus.grpc.server.xds.enabled=true
#quarkus.grpc.server.xds.secure=true
quarkus.grpc.server.port=30051
Quando o xDS está configurado, o modo "plain-text" é automaticamente desabilitado. |
Configurando cliente
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Configuration property |
Tipo |
Padrão |
---|---|---|
Explicitly enable use of XDS. Environment variable: Show more |
boolean |
|
Use secure credentials. Environment variable: Show more |
boolean |
|
Optional explicit target. Environment variable: Show more |
string |
Quando a propriedade de destino do xDS é utilizada, o resolvedor de nomes, host e porta não são utilizados. |
Exemplo de configuração do cliente
Para ativar o xDS do cliente, utilize a seguinte configuração:
You can either explicitly enable xDS or you use xds
name resolver,
and make sure you point it to the right xDS server port (default is 9000).
If you want to use XdsChannelCredentials
set xds.secure
to 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
Quando o xDS está configurado, o modo "plain-text" é automaticamente desabilitado. |
Exemplo de configuração do Kubernetes
Abaixo está um exemplo de configuração adicional (obrigatória) ao usar xDS gRPC com o Istio Service Mesh no Kubernetes.
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}