gRPC 1.10.0 正式发布,Google 高性能 RPC 框架

发布于 2018年03月03日
收藏 10

gRPC 1.10.0 已正式发布,该版本包含了大量改进和 bug 修复,具体如下:


  • To provide a cleaner install with fewer public headers, several features of core have been removed from the surface or GPR API as they were not used in any wrapped language (except C++) or in external applications, such as:
    a. grpc_alarm (removed; the C++ grpc::Alarm now directly invokes core subsurface functions)
    b. gpr_join_host_portgpr_cmdlinegpr_subprocess (moved to test/core/util)
    c. gpr_tlsgpr_avl (internalized)
    d. gpr_thd (internalized)

    • Except gpr_thd_id and gpr_thd_currentid, which remain public

  • As a result of these changes, core is now at version 6.0.0

  • Fix memory leaks in max_age_filter (#14501) and http_proxy (#14137)

  • Changed resolver and LB policy APIs to C++

  • Added re-resolution into grpclb policy (#14438).

  • Extracted per LB-call data from grpclb policy (#13911)

  • Fixed C-core to immediately take ownership of slices when a send_message op is started

  • Fix a race condition causing freeze at shutdown with epollex polling strategy (#14177)

  • Improvements in CMake: find_package (#14353)

  • Portability fixes (#14136#14198)

  • Test infrastructure cleanup (#14117)

  • Update BoringSSL submodule (#13948)

  • Make RR re-resolve when any of its subchannels fail (#14170)

  • DNS resolver caches results, allowing it to be hit arbitrarily often. Resolution frequency is controlled via channel arg GRPC_ARG_DNS_MIN_TIME_BETWEEN_RESOLUTIONS_MS. (#14228)


gRPC 是一个高性能、开源、通用的 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架。目前提供 C、Java 和 Go 语言版本,分别是:grpcgrpc-javagrpc-go. 其中 C 版本支持 CC++Node.jsPythonRubyObjective-CPHP 和 C#

gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间占用。


message HelloRequest {
  string greeting = 1;

message HelloResponse {
  string reply = 1;

service HelloService {
  rpc SayHello(HelloRequest) returns (HelloResponse);
转载请注明:文章转载自 开源中国社区 []
本文标题:gRPC 1.10.0 正式发布,Google 高性能 RPC 框架