有一个主题谈论最佳实践
https://github.com/grpc/grpc-go/issues/682
但是最后我不确定如何在程序中使用grpcio。
我正在使用基于GRPC的tensorflow-serving。我的客户基于python sdk grpcio-1.8.3。客户端程序是具有许多API的Flask服务器,每个API拥有相同的通道和存根。
当tensorflow-serving(GRPC服务器)重新启动时,客户端程序将失败,成为“端点读取失败”,并且将不再恢复。
但是当我将grpcio升级到较新版本时,该错误似乎已修复,因此客户端可以自动重新连接。
如果grpcio客户端(即Flask服务器)全局保存一个通道和存根,则错误似乎永远不会出现。
但是我仍然不确定使用grpc客户端SDK(例如grpcio),稳定和高性能进行编程的最佳方法是什么。因为在这些示例上甚至没有异常测试,所以更不用说如何在一个进程中使用多个通道和存根了。