12.gRPC压力测试工具ghz
本文主要介绍了 gRPC 压测工具 ghz 的安装、使用。
本文主要介绍了 gRPC 压测工具 ghz 的安装、使用。
gRPC 中已经内置了 retry 功能,可以直接使用,不需要手动来实现,本文主要记录使用 gRPC 实现自动重试功能。
gRPC 提供了关于 gRPC 负载均衡方案 Load Balancing in gRPC 的定义,此方案是为 gRPC 设计实现的。本文参考 gRPC 文档,简单介绍 gRPC 实现自定义负载均衡。
gRPC NameResolver 根据 name-system 选择对应的解析器,用以解析调用时提供的服务器名,最后返回具体地址列表(IP+端口号)。
gRPC 除了提供 TLS 认证之外,还提供自定义认证方式。
前面的章节实现的 gRPC 示例 Client/Server 之间的通信都是明文传输的,数据很容易被监听,甚至篡改。其实 gRPC 是鼓励开发者使用安全的通信的,只是在开始的章节中,客户端在创建连接时,使用 grpc.WithInsecure()
这个 Option 使 gRPC 以 Insecure 的方式连接。
本节主要介绍为 gRPC 添加 TLS 支持的过程,关于 TLS 的内容,请自行搜索相关资料。
gRPC 提供了 interceptor (拦截器) 功能,功能类似 middleware 。 拦截器可以用于处理一些公共的或者需要在业务开始前处理的工作。
gRPC 的 metadata (元信息) 类似于 HTTP 的 Header ,只是 gRPC 的 metadat 的 value 是一个数组。 HTTP 的 Header 生命周周期是一次 HTTP 请求;gRPC 的 metadata 的生命周期是一次 RPC 调用。
前文的示例是 gRPC 的 Unary RPC , 即客户端发起一次 Request、服务端响应一次 Response ,这种方式适合传输结构化数据很小的场景,当数据量大或者需要不断传输数据时候,应用应该使用流式RPC( Stream RPC ) ,它允许应用边传输数据边处理。
Linux shell 中截取字符串的方式有以下几种,可以跟据 shell 的场景自行使用。