猿问

基于 Mgo 的应用程序代码结构处理连接池和 tcp 超时

我很好奇我应该如何使用Mgo库用Go语言构建 JSON REST API 服务器。我有几十个彼此相关的集合。我已经在我目前的方法中用文件结构的示例部分创建了要点

它工作得很好,但有时我会遇到由这个错误引起的停机:“读取 tcp 10.168.30.100:37288: i/o timeout”。我想我不恰当地处理了 mgo 连接池。是否有任何示例显示我应该如何基于 mgo 创建大型应用程序?


慕尼黑5688855
浏览 213回答 1
1回答

至尊宝的传说

此错误消息意味着到数据库的往返时间比您定义的超时时间长。假设您没有任何导致应用程序运行缓慢的实际问题,只需增加超时时间就可以解决问题。一般来说,这个错误并不意味着你有任何类型的规模问题,除了事实可能你在某些集合中有越来越多的数据并且某些查询可能变得太慢并且需要重新思考(索引等) .也无需重新启动应用程序。您可以刷新有问题的会话,或者关闭并重新创建会话,以防您使用主会话的副本。mgo 和连接池的状态还是不错的。它只是警告您此特定会话在线路上发现了一个问题,因此您必须在会话再次有效之前确认它。像往常一样,还要确保使用最新版本以避免已经修复的问题(如果有)。
随时随地看视频慕课网APP

相关分类

Go
我要回答