2.42. gRPC
公开 gRPC 端点并访问外部 gRPC 端点。
2.42.1. 什么是内部 复制链接链接已复制到粘贴板!
-
gRPC 组件, URI 语法:
grpc:host:port/service
有关用法和配置详情,请参阅上述链接。
2.42.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-grpc</artifactId>
</dependency>
2.42.3. 使用方法 复制链接链接已复制到粘贴板!
2.42.3.1. protobuf 生成的代码 复制链接链接已复制到粘贴板!
Camel Quarkus gRPC 可以为 .proto 文件生成 gRPC 服务存根。使用 Maven 时,请确保已在项目构建中启用了 quarkus-maven-plugin 的 generate-code 目标。
<build>
<plugins>
<plugin>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-maven-plugin</artifactId>
<version>${quarkus.platform.version}</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>build</goal>
<goal>generate-code</goal>
<goal>generate-code-tests</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
使用这个配置,您可以将服务和消息定义放在 src/main/proto 目录中,quarkus-maven-plugin 将从您的 .proto 文件中生成代码。
2.42.3.1.1. 使用导入扫描 原型 文件 复制链接链接已复制到粘贴板!
协议缓冲器规格提供了一种导入原型文件的方法。您可以通过将配置属性 quarkus.camel.grpc.codegen.scan-for-imports 属性添加到 application.properties 来控制要扫描的依赖项范围。可用的选项概述如下。
-
All- Scan 所有依赖项 -
none- 禁用依赖项扫描。仅使用src/main/proto或src/test/proto中定义的 proto 定义 -
groupId1:artifactId1,groupId2:artifactId2- Scan only dependencies matching thegroupId和artifactIdlist
默认值为 com.google.protobuf:protobuf-java。
2.42.3.1.2. 从依赖项扫描 原型 文件 复制链接链接已复制到粘贴板!
如果您有多个依赖项之间共享的 proto 文件,您可以通过将配置属性 quarkus.camel.grpc.codegen.scan-for-proto 添加到 application.properties 来为它们生成 gRPC 服务 stub。
首先,将包含 proto 文件的工件依赖项添加到项目中。接下来,启用 proto 文件依赖项扫描。
quarkus.camel.grpc.codegen.scan-for-proto=org.my.groupId1:my-artifact-id-1,org.my.groupId2:my-artifact-id-2
可以通过配置属性从依赖项扫描中包含/排除特定的 proto 文件。
configuration 属性名称后缀是要配置的依赖关系的 Maven groupId / artifactId。路径相对于依赖项中 proto 文件的 classpath 位置。路径可以是到 proto 文件的显式路径,也可以是包含/排除多个文件的 glob 模式。
quarkus.camel.grpc.codegen.scan-for-proto-includes."<groupId>\:<artifactId>"=foo/**,bar/**,baz/a-proto.proto
quarkus.camel.grpc.codegen.scan-for-proto-excludes."<groupId>\:<artifactId>"=foo/private/**,baz/another-proto.proto
属性键中的 : 字符必须使用 \ 进行转义。
2.42.3.2. 在原生模式中访问类路径资源 复制链接链接已复制到粘贴板!
gRPC 组件具有各种选项,从 classpath 解析资源:
-
keyCertChainResource -
keyResource -
serviceAccountResource -
trustCertCollectionResource
在原生模式中使用这些选项时,您必须确保原生镜像中包含任何此类资源。
这可以通过将配置属性 quarkus.native.resources.includes 添加到 application.properties 来实现。例如,要包含 SSL / TLS 密钥和证书。
quarkus.native.resources.includes = certs/*.pem,certs.*.key
有关选择包含在原生可执行文件中的资源的更多信息,请参阅 原生模式指南。
2.42.4. Camel Quarkus 限制 复制链接链接已复制到粘贴板!
2.42.4.1. 不支持与 Quarkus gRPC 集成 复制链接链接已复制到粘贴板!
目前不支持将 Camel Quarkus gRPC 与 Quarkus gRPC 集成。如果 camel-quarkus-grpc 和 quarkus-grpc 扩展依赖于 classpath,则可能会在编译应用程序时在构建时遇到问题。
2.42.5. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
| 配置属性 | 类型 | default |
|---|---|---|
|
如果为 |
|
|
|
Camel Quarkus gRPC 代码生成可扫描 .proto 文件的应用程序依赖项,以便从它们生成 Java stub。此属性设置要扫描的依赖项范围。适用的值: - None- default - 不扫描依赖项 - 以逗号分隔的 groupId:artifactId 协调列表扫描 - 所有 扫描所有依赖项 |
|
|
|
Camel Quarkus gRPC 代码生成可以扫描 .proto 文件的依赖项,这些文件可通过此应用程序中的 protos 导入。适用的值: - None- default - 不扫描依赖项 - 以逗号分隔的 groupId:artifactId 协调列表,进行扫描 - 所有 扫描所有依赖项都默认为 com.google.protobuf:protobuf-java。 |
|
|
|
[[quarkus-camel-grpc-codegen-scan-for-proto-includes-scan-for-proto-includes] 软件包路径或文件 glob 模式包括每个依赖项,其中包含要考虑的 .proto 文件。 |
| |
|
[[quarkus-camel-grpc-codegen-scan-for-proto-excludes-scan-for-proto-excludes]] 软件包路径或文件通配模式包括每个依赖项,包含要考虑排除的 .proto 文件。 |
|
在构建时修复的配置属性。所有其他配置属性可在运行时覆盖。