在golang grpc中如何使用拦截器

 

在我认识的人当中大多数对中间件都有深刻的认知,但是对拦截器却知之甚少。接下来让我们剖析一下拦截器,来学习下怎么写和使用拦截器,并且为什么要这么做。
gRPC是一项伟大的技术,我把之前写的许多API替换成了这种方式。我发现开发gRPC接口比基于HTTP的接口要更加容易。我还是建议大家花点时间去学习下这项技术。
这里已经是这个系列的第2部分了,但是你并不需要一些预习的知识,甚至不需要去看第1部分和1.1部分.
- 1
- 1.1
- 2(我们在这里)
- 3 gRPC的数据流
在普通的HTTP服务中,我们会在服务端来用中间件来处理请求。中间件可以在真正处理请求之前,用来做任何事情,比如认证、记录日志等。
gRPC则有所不同,它允许拦截器用在客户端和服务端。这点非常好,因为他允许用户或者API接口的使用者添加任何想要的拦截器,就像记录日志。
在我们深入了解拦截器之前,我们必须理解gRPC服务器的核心概念。
gRPC核心概念:
在gRPC服务中有两个词我们必须理解。
**Unary** 是我们大多数人在使用的。你发送一个请求然后收到一个返回。
**Stream** 是当你发送或者接收原始消息的数据管道。
这意味着gRPC服务返回一个数据流,消费端可以在这个数据流中获得多个响应。数据流可以通过关键字steam被注意到,足够简单吧?
简而言之,gRPC允许4种不同的远程调用:
**Unary RPC**
当以后客户端发送一个请求,然后收到一个返回。
**Server Streaming RPC**
服务数据流远程调用是当客户端发送一个一元请求,但是返回了一个数据流。
**Client Streamin

你可能感兴趣的:(Golang,grpc)