Skip to the content.

配置

<- 返回索引

本节描述您如何配置您的 grpc-spring-boot-starter 应用程序。

目录

附加主题

通过属性配置

grpc-spring-boot-starter 可以通过 Spring 的 @ConfigurationProperties 机制来进行 配置

您可以在这里找到所有内置配置属性:

如果你希望阅读源代码,你可以查阅 这里

Channels 的属性都是以 grpc.server..grpc.client..security. 为前缀。

更改服务端端口

如果您想要将 gRPC 服务端端口从默认值(9090) 更改为其他的端口,您可以这样做:

grpc.server.port=80

将端口设置为 0 以使用空闲的随机端口。 此功能用于部署了服务发现的服务和并行测试的场景。

请确保您不会与其他应用程序或其他端点发生冲突,如spring-web

服务端安全性 页面上解释了 SSL / TLS 和其他与安全相关的配置。

启用 InProcessServer

有时,您可能想要在自己的应用程序中调用自己的 grpc 服务。 您可以像调用其他任何 gRPC 服务端一样,您需要使用 grpc 的 InProcessServer 来节省网络间开销。

您可以使用以下属性将其打开:

grpc.server.in-process-name=<SomeName>
# Optional: Turn off the external grpc-server
#grpc.server.port=-1

这允许客户端在同一应用程序内使用以下配置连接到服务器:

grpc.client.inProcess.address=in-process:<SomeName>

这对测试特别有用,因为他们不需要打开特定的端口,因此可以并发运行(在构建 服务器上)。

使用 Unix’s Domain Sockets

在基于 Unix 的系统上,您也可以使用域套接字在服务器和客户端之间进行本地通信。

只需配置地址即可:

grpc.server.address=unix:/run/grpc-server

然后,客户端可以使用同一地址连接到服务器。

如果您在使用 grpc-netty ,您还需要 nety-transport-native-epoll 依赖性。 grpc-netty-shaded 已经包含了这种依赖性,所以不需要添加任何东西就能正常工作。

通过Beans 配置

虽然这个项目为大多数功能提供了配置选项,但有时会因为添加它的成本太高了,我们会选择没有添加它。 如果您觉得这是一项重要功能,请随时提出一个特性请求。

如果您想更改应用程序,并超出了通过属性操作的范围,则可以使用该项目中现有存在的扩展点。

首先,大多数 bean 可以被自定义 bean 替换,您可以按照您想要的任何方式进行配置。 如果您不希望这么麻烦,可以使用 GrpcServerConfigurer 来配置你的服务端和其他组件,它不会丢失这个项目所提供的任何功能。

ServerInterceptor

向您的服务端添加 ` ServerInterceptor` 的三种方式。

GrpcServerConfigurer

Grpc 服务端配置器允许您将自定义配置添加到 gRPC 的 ServerBuilder

@Bean
public GrpcServerConfigurer keepAliveServerConfigurer() {
    return serverBuilder -> {
        if (serverBuilder instanceof NettyServerBuilder) {
            ((NettyServerBuilder) serverBuilder)
                    .keepAliveTime(30, TimeUnit.SECONDS)
                    .keepAliveTimeout(5, TimeUnit.SECONDS)
                    .permitKeepAliveWithoutCalls(true);
        }
    };
}

注意,根据您的配置,在应用程序上下文中可能有不同类型的 ServerBuilder (例如InProcessServerBuilder)。

附加主题


<- 返回索引