1. 概述 gRPC 系列相关代码见 Github gRPC 中已经内置了 retry 功能,可以直接使用,不需要我们手动来实现,非常方便。 2. Demo Server 为了测试 retry 功能,服务端做了一点调整。 记录客户端的请求...
gRPC(Go)入门教程(八)—使用context进行超时控制
1. 概述 gRPC 系列相关代码见 Github 通过 ctx 完成 cancel 和 deadline 功能。 Go 语言中可以通过 ctx 来控制各个 Goroutine,调用 cancel 函数,则该 ctx 上的各个子 Goroutine 都会被一并取消。 gRP...
gRPC(Go)入门教程(七)—利用Gateway同时提供HTTP和RPC服务
1. 概述 gRPC 系列相关代码见 Github gRPC-Gateway 是Google protocol buffers compiler(protoc)的一个插件。读取 protobuf 定义然后生成反向代理服务器,将 RESTful HTTP API 转换为 gRPC。 换句话说就是...
gRPC(Go)入门教程(六)—提升服务安全性之自定义身份校验
1. 概述 gRPC 系列相关代码见 Github 在 gRPC 中,身份验证被抽象为了credentials.PerRPCCredentials接口: type PerRPCCredentials interface { GetRequestMetadata(ctx context.Context, uri ...strin...
gRPC(Go)入门教程(五)—gPRC拦截器Interceptor
1. 概述 gRPC 系列相关代码见 Github gRPC 提供了 Interceptor 功能,包括客户端拦截器和服务端拦截器。可以在接收到请求或者发起请求之前优先对请求中的数据做一些处理后再转交给指定的服务处理并响应,很适...
gRPC(Go)入门教程(四)—数据安全之–通过SSL/TLS建立安全连接
1. 概述 gRPC 系列相关代码见 Github gRPC 内置了以下 encryption 机制: 1)SSL / TLS:通过证书进行数据加密; 2)ALTS:Google开发的一种双向身份验证和传输加密系统。 只有运行在 Google Cloud Pl...
gRPC(Go)入门教程(三)—gRPC流式传输–Streaming
1. 概述 gRPC 系列相关代码见 Github gRPC 中的 Service API 有如下4种类型: 1)UnaryAPI:普通一元方法 2)ServerStreaming:服务端推送流 3)ClientStreaming:客户端推送流 4)BidirectionalStream...
gRPC(Go)入门教程(二)—gRPC初体验–hello world
1. 概述 gRPC 系列相关代码见 Github gRPC 是一个高性能、通用的开源 RPC 框架,其由 Google 主要面向移动应用开发并基于 HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众...
gRPC(Go)入门教程(一)—Protobuf介绍及其编译原理
1. 概述 Protocol buffers 是一种语言无关、平台无关的可扩展机制或者说是数据交换格式,用于序列化结构化数据。与 XML、JSON 相比,Protocol buffers 序列化后的码流更小、速度更快、操作更简单。 Protocol ...
go dig学习笔记,依赖注入,反转控制
IOC、DI介绍 IOC、DI这两词相信对于过去接触过大名鼎鼎的Spring的小伙伴来说应该并不陌生,但很多人往往不能第一时间说出这两个词的主要意思,然后对于一些没有Spring使用经验的人来说,可能就是显得比较陌生。...