Vertx-关闭连接-JDBC和其他

时间:2019-09-25 17:51:48

标签: elasticsearch jdbc vert.x vertx-verticle

我有一个Verticle,它使用事件总线中的消息并对其进行处理。我有一个关于何时应关闭JDBC连接的问题。有两种方法

  1. 在处理完消息后即关闭连接。但这会非常昂贵,因为我每次都会打开/关闭连接。

  2. 请相信,当顶点停止/取消部署时,vertx将关闭连接(实际上从不),只要连接打开,就不会有任何内存泄漏。我将在start()方法中打开连接,以便每当有消息可用时。

另一方面,如果我有一个弹性搜索后端,并且使用的是弹性搜索SDK,该SDK具有关闭客户端的特定方法,那么什么时候才应该真正关闭连接?

2 个答案:

答案 0 :(得分:0)

您始终可以将清理代码放在Verticle接口的Stop()方法中。顶点启动时,它将被取消部署过程。

请参见Vert.x Docs

答案 1 :(得分:0)

使用连接池,这将消除关闭/打开连接的大部分费用。使用连接池时,关闭连接会将其返回到连接池以重新使用。

基本用法是:

try (Connection connection = dataSource.getConnection()) {
  // use connection
}

在该块的末尾,连接被关闭,如果dataSource有一个连接池,则连接将重新使用。