我正在尝试与cloudant数据库建立连接池。根据我的理解,cloudant数据库固有地使用默认参数max_connections = 6 max_connections code进行连接池。所需的代码段位于第130行。
我有一个使用akka-http用scala编写的工作应用程序,具有以下初始化:
val client: CloudantClient = ClientBuilder.account(<accountdetails>)
.username(<my user name>)
.password(<my password>).maxConnections(20)
.build()
println("creating database")
val db: Database = client.database("exampledb", false)
println("created");
我的问题是如何确认连接池是否按照预期的方式用于基本的get函数,例如示例学生数据库。
答案 0 :(得分:2)
我不认为akka-http会在这里产生影响,除非它取代java.netHttpURLConnection
。 CloudantClient
使用java.net.HttpURLConnection
类与Cloudant数据库进行通信。 HttpURLConnection
的实现由JVM默认提供,如果添加了依赖关系,则由OkHttp提供。根据{{3}},如果您使用可选的OkHttp客户端,行为会发生变化。如果您使用OkHttp依赖项,documentation for connection pooling仅更改连接池大小。对于缺省值HttpURLConnection
,池大小由JVM属性配置。
根据maxConnections
method,可以为java-cloudant客户端启用日志记录。由于池使用对客户端代码是透明的,如果要验证是否从池创建或租用了连接,则需要记录基础HttpURLConnection
。有关默认HttpURLConnection
的日志字符串的详细信息,请参阅示例this documentation。
如果您担心汇集是否有效,您可能还会发现有关this answer的讨论。在很短的空闲时间之后,默认的JVM实现会清除池中的连接。