客户端用的上下文是context.WithTimeout 超时时间小于服务端的返回时间,造成 context deadline exceeded。
  当使用gRPC时,gRPC库负责通信,编组,解组和最后期限执行。Deadline允许gRPC客户端指定在RPC以错误DEADLINE_EXCEEDED终止之前,他们愿意等待RPC完成的时间。默认情况下,此截止日期是一个非常大的数字,取决于语言实现。 问题解决:
DialContext传入一个Timeout的context,就像下面的例子

ctx1, cel := context.WithTimeout(context.Background(), time.Second*5) defer cel() 

conn, err := grpc.DialContext(ctx1, address, grpc.WithBlock(), grpc.WithInsecure())

最简单的解决办法就是把超时时间调大一点 以前设置的是一秒 现在调成五秒。