当前位置: 首页 > 知识库问答 >
问题:

Go mgo包中的连接池

孔寒
2023-03-14

在这篇文章runn-mongob-querys-contined-with-go中说mgo。DialSusInfo:创建一个会话,它维护一个到MongoDB的套接字连接池,但是当我在函数DialSusInfo的文档中查找时,我没有找到谈论池连接的东西,只有我在Dial Function Dial Function中找到了一些东西,上面写着:对于给定的集群,此方法通常只调用一次。然后在获得的会话上使用New或Copy方法建立对同一集群的进一步会话。这将使它们共享底层集群,并适当地管理连接池。

  • 有人能告诉我MGO上的池连接是如何工作的吗?如果可能的话,可以设置这个池吗
  • DialWithInfo是真的创建了一个池连接,还是仅仅是创建这个池的拨号功能

提前谢谢

共有1个答案

经俊茂
2023-03-14

查看Dial函数调用的源代码,您可以看到Dial函数调用DialSusTimeout函数,该函数调用DialSusInfo函数。因此,为了回答您关于函数之间差异的问题,Dial似乎是DialNevTimeout的方便包装器,而DialSusInfo又是的方便包装器,因此它们会导致相同的连接池。

至于如何管理该连接池,您的问题中已经回答正确。

然后在获得的会话上使用新的或复制方法建立到同一集群的进一步会话。这将使它们共享底层集群,并适当地管理连接池。

因此,对拨号拨号超时拨号信息的单个呼叫将建立连接池,如果需要多个会话,请使用会话。新建()会话。Copy()方法从您选择使用的拨号功能返回的会话中获取。

 类似资料:
  • 我想请你帮忙。我有两张桌子。在表1中,我有client_num和personal data。我想把tab1和tab2连接起来,其中也有client_nums,但一个客户机号可以在更多行上。本表2的第二列是以数字1-5写成的产品。 表1 CLIENT_NUM;性别 表2 CLIENT_NUM;产品 现在我只想要那些没有4号产品的客户 你能帮我一下吗?谢谢

  • 我已经启动了zoo的管理员,Kafka服务器,Kafka生产者和Kafka消费者,我已经把jdbc sql连接器罐下载从合流,并把罐子的路径,我已经提到plugin.path连接独立properties.and我已经运行connect-standalone.bat……\config\connect-standalone.properties…\config\sink-quickstart-mysq

  • 问题内容: 目前,我们正在使用带有8gb RAM的4个cpu窗口框,并在同一框上安装了MySQL5.x。我们正在为应用程序使用Weblogic应用程序服务器。我们的应用程序目标是200个并发用户(显然不是同一模块/屏幕)。那么,我们应该在连接池中配置的最佳连接数是多少(最小和最大数)(我们正在使用weblogic AS的连接池机制)? 问题答案: 这个问题有一个非常简单的答案: 连接池中的连接数应

  • 我正在使用hikaricp(这可能也适用于任何其他数据库连接池)。我有一个DBPool类,在其中我实例化了一个HikariDataSource(使用HikariConfig对象)。对于这个DBPool,我使用lazyholder习惯用法来限制每个VM一个池实例。但是,一旦获得对池的引用,就可以检索连接对象(无需任何进一步的锁/同步/信号量检查),因为我认为连接池会处理我的连接对象限制。每次通过数据

  • 当从Oracle datasource获得连接时,我们使用appserver(weblogic/JBoss)特定的包装器将连接包装到Oracle连接,如下面所示。如果我们不包装它,我们将无法使用Oracle的特性,如ArrayDescriptors。我们应该改变我们的应用程序,使它们同时在weblogic和JBoss中工作。 java: 每当需要连接时,我们将像下面这样调用Datasource:

  • 我正在尝试从旧的Azure AD OpenId连接转换到使用新的Azure AD V2.0endpoint,如下所示:https://docs.microsoft.com/en-us/Azure/active-directory/develop/active-directory-v2-protocols-oidc 当我试图通过v2.0令牌endpointhttps://login.microsof