Link Search Menu Expand Document Documentation Menu

gRPC API

3.0 版本引入

这是一项实验性功能,不建议在生产环境中使用。有关该功能进度的更新或如果您想留下反馈,请参阅相关的 GitHub issue

OpenSearch gRPC 插件提供了一种替代的高性能传输层,使用 gRPC 与 OpenSearch 通信。它使用基于 gRPC 的协议缓冲区,以实现更低的开销和更快的序列化。根据初步基准测试结果,这减少了开销,加快了序列化速度,并改善了请求端延迟。

gRPC 插件的主要目标是:

  • 提供 二进制编码 的替代方案,以取代基于 HTTP/REST 的通信。
  • 提高 批量工作负载和大规模摄取场景的 性能
  • 使用原生 gRPC 存根,实现 Java、Go 和 Python 等语言之间更高效的 客户端集成

启用插件

要在 OpenSearch 中启用 gRPC 插件 (transport-grpc):

  1. 安装 transport-grpc 插件。有关更多信息,请参阅 安装插件

  2. 将以下设置添加到 opensearch.yml
     aux.transport.types: [experimental-transport-grpc]
     aux.transport.experimental-transport-grpc.port: '9400-9500' // optional
    

    或者,使用以下设置配置安全传输协议:

     aux.transport.types: [experimental-secure-transport-grpc]
     aux.transport.experimental-transport-grpc.port: '9400-9500' // optional
    

  3. 根据需要配置其他设置(请参阅 高级 gRPC 设置
     grpc.host: localhost
     grpc.publish_host: 10.74.124.163
     grpc.bind_host: 0.0.0.0
    

高级 gRPC 设置

OpenSearch 支持以下用于 gRPC 通信的高级网络设置:

  • grpc.host(静态,列表):设置 OpenSearch 节点用于 gRPC 通信的地址。grpc.host 设置是 grpc.bind_hostgrpc.publish_host 相同值时的组合。 grpc.host 的替代方法是根据需要单独配置 grpc.bind_hostgrpc.publish_host

  • grpc.bind_host(静态,列表):指定 OpenSearch 节点绑定以监听传入 gRPC 连接的一个或多个地址。

  • grpc.publish_host(静态,列表):指定 OpenSearch 节点发布给其他节点用于 gRPC 通信的一个或多个地址。

这些设置类似于 HTTP 网络设置

使用 gRPC API

要提交 gRPC 请求,客户端必须拥有一组 protobufs。您可以通过以下方式获取 protobufs:

支持的 API

此功能目前正在开发中,支持以下 API:

剩余 350 字符

有问题?

想贡献吗?