无论客户端还是服务端在远程调用前后执行一些通用逻辑,例如Gin框架,实现日志、监控、认证、Recover等通用逻辑,gRPC也提供这样的机制。
拦截器分为:一元拦截器、流拦截器,这两种拦截器在客户端、服务端都可以使用。拦截器的执行流程如图:其中InHandlerx与outHandlerx是同一个函数,被拆成上下两部分。

1. 一元拦截器
1)复制learn01 到 learn11
2)编写客户端程序,添加拦截器,记录调用时间TimeInterceptor,invoker表示调用下一级路径,下级执行完成后返回,再执行log.Printf("method:%s, exec:%d", method, time.Now().Sub(now).Milliseconds()),这样就实现执行远程调用前后的逻辑处理。
func TimeInterceptor(ctx context.Context, method

![B+树 [数据结构与算法][Java]](https://img-blog.csdnimg.cn/aca3791fc1f04d0c9864886dc620b22f.png#pic_center)
















