Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Golang goroutines共享RPC连接_Go_Rpc_Gob - Fatal编程技术网

Golang goroutines共享RPC连接

Golang goroutines共享RPC连接,go,rpc,gob,Go,Rpc,Gob,我有一个Golang服务器,它使用专用goroutine服务入站请求。这些goroutine将使用rpc/gob访问另一个后端go服务器。在重用连接以使Gob更好地工作的情况下(共享连接的请求可以在不重新发送的情况下重用元数据,也可以为TCP启动节省时间),我正在考虑实现类似连接池的机制(如mysql客户端池),但在此之前我错过了任何重要的东西吗 有任何特定的方法来处理这种共享RPC客户端吗? 或者任何为处理这种情况而构建的项目?经过一些调查后,我发现内置客户端库中已经完成了一个池机制,基于,但

我有一个Golang服务器,它使用专用goroutine服务入站请求。这些goroutine将使用rpc/gob访问另一个后端go服务器。在重用连接以使Gob更好地工作的情况下(共享连接的请求可以在不重新发送的情况下重用元数据,也可以为TCP启动节省时间),我正在考虑实现类似连接池的机制(如mysql客户端池),但在此之前我错过了任何重要的东西吗

有任何特定的方法来处理这种共享RPC客户端吗?
或者任何为处理这种情况而构建的项目?

经过一些调查后,我发现内置客户端库中已经完成了一个池机制,基于,但如果有人能与我分享更多的见解,我仍然很感兴趣。

请参阅-此库进一步进行了RPC优化-它使用独立的读写循环、消息批处理和压缩。与net/rpc相比,它还有更简单的API


在一个实际的生产项目中,从基于http的rpc切换到gorpc可以将rpc网络带宽从300Mbit/s减少到24Mbit/s。

虽然内置池对我来说简单且足够,并且可能有更多的官方支持,但我仍然非常有兴趣尝试这个。谢谢,瓦利亚拉