-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathgrpc-service-consumption.adoc.po
389 lines (322 loc) · 19.2 KB
/
grpc-service-consumption.adoc.po
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2023-10-29 08:09+0000\n"
"PO-Revision-Date: 2023-11-17 20:39-0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.4.1\n"
#. This guide is maintained in the main Quarkus repository
#. and pull requests should be submitted there:
#. https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc
#. type: Title =
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Consuming a gRPC Service"
msgstr "Consumindo um serviço gRPC"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "gRPC clients can be injected in your application code."
msgstr "Os clientes gRPC podem ser injectados no código da sua aplicação."
#: _guides/grpc-service-consumption.adoc
msgid ""
"Consuming gRPC services requires the gRPC classes to be generated.\n"
"Place your `proto` files in `src/main/proto` and run `mvn compile`."
msgstr "Consumir serviços gRPC requer que as classes gRPC sejam geradas. Coloque seus arquivos `proto` em `src/main/proto` e execute `mvn compile` ."
#. type: Title ==
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Stubs and Injection"
msgstr "Stubs e Injeção"
#: _guides/grpc-service-consumption.adoc
msgid ""
"gRPC generation provides several stubs, providing different ways to consume a gRPC service.\n"
"You can inject:"
msgstr "A geração do gRPC fornece vários stubs, oferecendo diferentes maneiras de consumir um serviço gRPC. Você pode injetar:"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "a service interface using the Mutiny API,"
msgstr "uma interface de serviço utilizando a API Mutiny,"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "a blocking stub using the gRPC API,"
msgstr "um stub bloqueante utilizando a API gRPC,"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "a reactive stub based on Mutiny,"
msgstr "um stub reativo baseado no Mutiny,"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "the gRPC `io.grpc.Channel`, that lets you create other types of stubs."
msgstr "o `io.grpc.Channel` do gRPC, que permite criar outros tipos de stubs."
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "A gRPC client injection point must be annotated with the `@GrpcClient` qualifier. This qualifier can be used to specify the name that is used to configure the underlying gRPC client. For example, if you set it to `hello-service`, configuring the host of the service is done using the `quarkus.grpc.clients.**hello-service**.host`."
msgstr "O ponto de injeção do cliente gRPC deve ser anotado com o qualificador `@GrpcClient`. Este qualificador pode ser usado para especificar o nome que é utilizado para configurar o cliente gRPC subjacente. Por exemplo, se você defini-lo como `hello-service`, a configuração do host do serviço é feita usando o qualificador `quarkus.grpc.clients. *hello-service*.host`."
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "If the name is not specified via the `GrpcClient#value()` then the field name is used instead, e.g. `helloService` in this particular case."
msgstr "Se o nome não for especificado através do endereço `GrpcClient#value()`, então o nome do campo é usado em seu lugar, por exemplo, `helloService` neste caso específico."
#: _guides/grpc-service-consumption.adoc
msgid ""
"The stub class names are derived from the service name used in your `proto` file.\n"
"For example, if you use `Greeter` as a service name as in:"
msgstr "Os nomes das classes stub são derivados do nome do serviço usado em seu arquivo `proto` . Por exemplo, se você usar `Greeter` como nome de serviço, como no seguinte caso:"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "Then the service interface name is: `hello.Greeter`, the Mutiny stub name is: `hello.MutinyGreeterGrpc.MutinyGreeterStub` and the blocking stub name is: `hello.GreeterGrpc.GreeterBlockingStub`."
msgstr "Nesse caso, o nome da interface do serviço é: `hello.Greeter`, o nome do stub Mutiny é: `hello.MutinyGreeterGrpc.MutinyGreeterStub` e o nome do stub bloqueante é: `hello.GreeterGrpc.GreeterBlockingStub`."
#. type: Title ==
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Examples"
msgstr "Exemplos"
#. type: Title ===
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Service Interface"
msgstr "Interface de serviço"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "The service name is derived from the injection point - the field name is used. The `quarkus.grpc.clients.hello.host` property must be set."
msgstr "O nome do serviço é derivado do ponto de injeção - o nome do campo é usado. A propriedade `quarkus.grpc.clients.hello.host` deve ser definida."
#. type: Title ===
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Blocking Stub"
msgstr "Stub Bloqueante"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "The `quarkus.grpc.clients.hello.host` property must be set."
msgstr "A propriedade `quarkus.grpc.clients.hello.host` deve ser configurada."
#. type: Title ===
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Handling streams"
msgstr "Lidando com fluxos"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "gRPC allows sending and receiving streams:"
msgstr "O gRPC permite o envia e recebimento de fluxos:"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "Using the Mutiny stub, you can interact with these as follows:"
msgstr "Utilizando o stub Mutiny, você pode interagir com eles da seguinte forma:"
#. type: Title ==
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Client configuration"
msgstr "Configuração do cliente"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "For each gRPC service you inject in your application, you can configure the following attributes:"
msgstr "Para cada serviço gRPC que você injeta em sua aplicação, você pode configurar os seguintes atributos:"
#: _guides/grpc-service-consumption.adoc
msgid "<span class=\"icon\"><i class=\"fa fa-lock\" title=\"Fixed at build time\"></i></span> Configuration property fixed at build time - All other configuration properties are overridable at runtime <input type=\"search\" id=\"config-search-0\" placeholder=\"FILTER CONFIGURATION\" disabled>"
msgstr "<span class=\"icon\"><i class=\"fa fa-lock\" title=\"Fixed at build time\"></i></span> Propriedade de Configuração Fixa no Momento da Compilação - Todas as outras propriedades de configuração podem ser sobrepostas em tempo de execução. <input type=\"search\" id=\"config-search-0\" placeholder=\"FILTER CONFIGURATION\" disabled>"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "The `client-name` is the name set in the `@GrpcClient` or derived from the injection point if not explicitly defined."
msgstr "O `client-name` é o nome definido no `@GrpcClient` ou derivado do ponto de injeção, se não for explicitamente definido."
#: _guides/grpc-service-consumption.adoc
msgid ""
"The following examples uses _hello_ as the client name.\n"
"Don't forget to replace it with the name you used in the `@GrpcClient` annotation."
msgstr "Os exemplos a seguir usam _hello_ como o nome do cliente. Não se esqueça de substituí-lo pelo nome que você usou na anotação `@GrpcClient` ."
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "When you enable `quarkus.grpc.clients.\"client-name\".xds.enabled`, it's the xDS that should handle most of the configuration above."
msgstr "Quando você habilita `quarkus.grpc.clients.\"client-name\".xds.enabled`, é o xDS que deve tratar da maior parte da configuração acima."
#. type: Title ===
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Enabling TLS"
msgstr "Habilitando o TLS"
#: _guides/grpc-service-consumption.adoc
msgid ""
"To enable TLS, use the following configuration.\n"
"Note that all paths in the configuration may either specify a resource on the classpath\n"
"(typically from `src/main/resources` or its subfolder) or an external file."
msgstr "Para habilitar o TLS, use a seguinte configuração. Lembre-se de que todos os caminhos na configuração podem especificar um recurso no classpath (geralmente em `src/main/resources` ou de sua subpasta) ou um arquivo externo."
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "When SSL/TLS is configured, `plain-text` is automatically disabled."
msgstr "Quando SSL/TLS é configurado, `plain-text` é automaticamente desativado."
#. type: Title ===
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "TLS with Mutual Auth"
msgstr "TLS com autenticação mútua"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "To use TLS with mutual authentication, use the following configuration:"
msgstr "Para utilizar o TLS com autenticação mútua, utilize a seguinte configuração:"
#. type: Title ===
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Client Stub Deadlines"
msgstr "Prazos (Deadlines) para o Stub do Cliente"
#: _guides/grpc-service-consumption.adoc
msgid ""
"If you need to configure a deadline for a gRPC stub, i.e. to specify a duration of time after which the stub will always return the status error `DEADLINE_EXCEEDED`.\n"
"You can specify the deadline via the `quarkus.grpc.clients.\"service-name\".deadline` configuration property, e.g.:"
msgstr "Se o senhor precisar configurar um prazo (deadline) para um stub de gRPC, ou seja, para especificar uma duração de tempo após o qual o stub sempre retornará o erro de status `DEADLINE_EXCEEDED` . Você pode especificar o prazo através da propriedade de configuração `quarkus.grpc.clients.\"service-name\".deadline` , por exemplo:"
#: _guides/grpc-service-consumption.adoc
msgid "Set the deadline for all injected stubs."
msgstr "Defina o prazo (deadline) para todos os stubs injetados."
#: _guides/grpc-service-consumption.adoc
msgid ""
"Do not use this feature to implement an RPC timeout.\n"
"To implement an RPC timeout, either use Mutiny `call.ifNoItem().after(...)` or Fault Tolerance `@Timeout`."
msgstr "Não utilize esse recurso para implementar um tempo limite (timeout) de RPC. Para implementar um timeout de RPC, use Mutiny `call.ifNoItem().after(…)` ou Fault Tolerance `@Timeout` ."
#. type: Title ==
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "gRPC Headers"
msgstr "Cabeçalhos gRPC"
#: _guides/grpc-service-consumption.adoc
msgid ""
"Similarly to HTTP, alongside the message, gRPC calls can carry headers.\n"
"Headers can be useful e.g. for authentication."
msgstr "Da mesma forma que no HTTP, chamadas gRPC podem transportar cabeçalhos junto com a mensagem. Cabeçalhos podem ser úteis, por exemplo, para autenticação."
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "To set headers for a gRPC call, create a client with headers attached and then perform the call on this client:"
msgstr "Para definir cabeçalhos para uma chamada gRPC, crie um cliente com cabeçalhos anexados e, em seguida, realize a chamada neste cliente:"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "Alter the client to make calls with the `extraHeaders` attached"
msgstr "Alterar o cliente para fazer chamadas com os `extraHeaders` anexados"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "Perform the call with the altered client. The original client remains unmodified"
msgstr "Realize a chamada com o cliente alterado. O cliente original permanece inalterado."
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "`GrpcClientUtils` work with all flavors of clients."
msgstr "`GrpcClientUtils` funciona com todas as variações de clientes."
#. type: Title ==
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Client Interceptors"
msgstr "Interceptores de clientes"
#: _guides/grpc-service-consumption.adoc
msgid ""
"A gRPC client interceptor can be implemented by a CDI bean that also implements the `io.grpc.ClientInterceptor` interface.\n"
"You can annotate an injected client with `@io.quarkus.grpc.RegisterClientInterceptor` to register the specified interceptor for the particular client instance.\n"
"The `@RegisterClientInterceptor` annotation is repeatable.\n"
"Alternatively, if you want to apply the interceptor to any injected client then annotate the interceptor bean with `@io.quarkus.grpc.GlobalInterceptor`."
msgstr "Um interceptor de cliente gRPC pode ser implementado por um bean CDI que também implementa a interface `io.grpc.ClientInterceptor` . Você pode anotar um cliente injetado com `@io.quarkus.grpc.RegisterClientInterceptor` para registrar o interceptor especificado para a instância específica do cliente. A anotação `@RegisterClientInterceptor` pode ser repetida. Como alternativa, se você deseja aplicar o interceptador a qualquer cliente injetado, anote o bean do interceptador com `@io.quarkus.grpc.GlobalInterceptor` ."
#. type: Block title
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Global Client Interceptor Example"
msgstr "Exemplo de Interceptor Global de Cliente"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "This interceptor is applied to all injected gRPC clients."
msgstr "Este interceptor é aplicado a todos os clientes gRPC injectados."
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "It's also possible to annotate a producer method as a global interceptor:"
msgstr "Também é possível anotar um método produtor como um interceptor global:"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "Check the https://grpc.github.io/grpc-java/javadoc/io/grpc/ClientInterceptor.html[ClientInterceptor JavaDoc] to properly implement your interceptor."
msgstr "Consulte o link:https://grpc.github.io/grpc-java/javadoc/io/grpc/ClientInterceptor.html[JavaDoc do ClientInterceptor] para implementar corretamente o seu interceptor."
#. type: Block title
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "`@RegisterClientInterceptor` Example"
msgstr "Exemplo de `@RegisterClientInterceptor`"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "Registers the `MySpecialInterceptor` for this particular client."
msgstr "Regista o `MySpecialInterceptor` para este cliente específico."
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "When you have multiple client interceptors, you can order them by implementing the `jakarta.enterprise.inject.spi.Prioritized` interface:"
msgstr "Quando tem vários interceptadores de clientes, pode ordená-los implementando a interface `jakarta.enterprise.inject.spi.Prioritized`:"
#: _guides/grpc-service-consumption.adoc
msgid ""
"Interceptors with the highest priority are called first.\n"
"The default priority, used if the interceptor does not implement the `Prioritized` interface, is `0`."
msgstr "Os interceptadores com a maior prioridade são chamados primeiro. A prioridade padrão, usada se o interceptador não implementar a interface `Prioritized` , é `0` ."
#. type: Title ==
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "gRPC Client metrics"
msgstr "Métricas de Cliente gRPC"
#. type: Title ===
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Enabling metrics collection"
msgstr "Habilitando a coleta de métricas"
#: _guides/grpc-service-consumption.adoc
msgid ""
"gRPC client metrics are automatically enabled when the application also uses the xref:telemetry-micrometer.adoc[`quarkus-micrometer`] extension.\n"
"Micrometer collects the metrics of all the gRPC clients used by the application."
msgstr "As métricas do cliente gRPC são habilitadas automaticamente quando a aplicação também utiliza a extensão xref:telemetry-micrometer.adoc[quarkus-micrometer]. O Micrometer coleta as métricas de todos os clientes gRPC usados pelo aplicação."
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "As an example, if you export the metrics to Prometheus, you will get:"
msgstr "Como exemplo, se você exportar as métricas para o Prometheus, obterá:"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "The service name, method and type can be found in the _tags_."
msgstr "O nome do serviço, o método e o tipo podem ser encontrados nas _tags_."
#. type: Title ===
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Disabling metrics collection"
msgstr "Desativar a coleta de métricas"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "To disable the gRPC client metrics when `quarkus-micrometer` is used, add the following property to the application configuration:"
msgstr "Para desativar as métricas do cliente gRPC quando se utiliza `quarkus-micrometer`, adicione a seguinte propriedade à configuração da aplicação:"
#. type: Title ==
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Custom exception handling"
msgstr "Tratamento personalizado de excepções"
#: _guides/grpc-service-consumption.adoc
msgid ""
"If any of the gRPC services or server interceptors throw an (custom) exception, you can add your own https://github.com/quarkusio/quarkus/extensions/grpc/api/src/main/java/io/quarkus/grpc/ExceptionHandlerProvider.java[ExceptionHandlerProvider]\n"
"as a CDI bean in your application, to provide a custom handling of those exceptions."
msgstr "Se algum dos serviços gRPC ou interceptadores de servidor lançar uma exceção (personalizada), você poderá adicionar seu próprio link:https://github.com/quarkusio/quarkus/extensions/grpc/api/src/main/java/io/quarkus/grpc/ExceptionHandlerProvider.java[ExceptionHandlerProvider] como um bean CDI em sua aplicação, para fornecer um tratamento personalizado dessas exceções."
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "e.g."
msgstr "por exemplo."
#. type: Title ==
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Dev Mode"
msgstr "Modo de desenvolvimento"
#: _guides/grpc-service-consumption.adoc
msgid ""
"By default, when starting the application in dev mode, a gRPC server is started, even if no services are configured.\n"
"You can configure the gRPC extension's dev mode behavior using the following properties."
msgstr "Por padrão, ao iniciar a aplicação no modo de desenvolvimento, um servidor gRPC é iniciado, mesmo que nenhum serviço esteja configurado. Você pode configurar o comportamento do modo de desenvolvimento da extensão gRPC usando as seguintes propriedades."
#. type: Title ==
#: _guides/grpc-service-consumption.adoc
#, no-wrap
msgid "Inject mock clients"
msgstr "Injetar clientes falsos"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "In your `@QuarkusTest`, you can use `@InjectMock` to inject the Mutiny client of a gRPC service:"
msgstr "No seu `@QuarkusTest`, você pode utilizar `@InjectMock` para injetar o cliente Mutiny de um serviço gRPC:"
#. type: Plain text
#: _guides/grpc-service-consumption.adoc
msgid "Only the Mutiny client can be _mocked_, channels, and other stubs cannot be mocked."
msgstr "Apenas o cliente Mutiny pode ser _mocked_ (simulado), canais e outros stubs não podem ser simulados."