【问题标题】:Closing connection when using Azure JS SDK for Service Bus is needed?使用 Azure JS SDK for Service Bus 时需要关闭连接吗?
【发布时间】:2021-07-10 00:26:19
【问题描述】:

如果在我的服务器端应用程序中,每次,通常是每个传入的 HTTP 请求一次或几次,我打开一个新连接 New ServiceBusClient(connStr) 并开始使用它并且不调用 close 方法,是否有任何缺点最后?

可能会导致端口或内存耗尽,或者New ServiceBusClient(connStr) 会在下面使用某种连接池,所以不用担心?

【问题讨论】:

    标签: javascript node.js connection connection-pooling azure-sdk


    【解决方案1】:

    我认为你需要在最后调用close方法,否则会导致你提到的问题。

    在官方doc中也是如此。

    async function main() {
    const sbClient = new ServiceBusClient(connectionString);
    .....
    
    } finally {
            await sbClient.close();
        }
    }
    

    【讨论】:

    • 你的猜测有参考吗?我知道关闭它会更安全,但问题是“必须关闭”还是“关闭会更好/更安全”?
    • @mehran 不,但我认为这是我们经常做的正常事情,你的意思是“必须”吗?我认为世界上没有我们“必须”做的事情,当然你可以选择不关闭它,但我认为它会导致内存耗尽。如果我们已经有了更好的选择,为什么还要考虑更差的选择?
    【解决方案2】:

    不,没有连接池。每次创建ServiceBusClient 的实例时,都会创建一个底层连接。当客户端不再使用时,最好拨打close()

    https://github.com/Azure/azure-sdk-for-js/blob/ab566082fd5182903cc2144efbbf3c197c3e6f6a/sdk/servicebus/service-bus/src/serviceBusClient.ts#L78-L96

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      相关资源
      最近更新 更多