那些.NET中的连接池

这篇具有很好参考价值的文章主要介绍了那些.NET中的连接池。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在.NET中,连接池被广泛用于管理和优化不同类型资源的连接。连接池可以减少建立和关闭连接所需的时间和资源消耗,从而提高了应用程序的性能和响应能力。

HttpClient中的连接池

System.Net.Http.HttpClient 类用于发送 HTTP 请求以及从 URI 所标识的资源接收 HTTP 响应。 每个HttpClient 实例使用自身的连接池,当实例被释放时,连接一会一同被释放,所以为了缓解端口耗尽问题,应该尽量重用HttpClient实例。

我们可以控制HttpClient中的connection pool的行为

  • PooledConnectionLifetime 指的是当连接处于池中时保持活动状态的时间长度。一旦这个生命周期到期,该连接将不再被保留在池中或用于未来的请求。默认为Infinite

  • PooledConnectionIdleTimeout 定义了空闲连接在未被使用时在连接池中保持的时间长度。一旦这个生命周期到期,空闲的连接将被清除并从池中移除。默认为两分钟

  • MaxConnectionsPerServer 定义了每个端点将建立的最大出站连接数。每个端点的连接分别进行池化。例如,如果最大连接数的值是2,而你的应用程序向www.github.com和www.google.com发送请求,则总共可能会有最多4个开放的连接。默认值为Int.MaxValue

DB连接池

DB连接池大家都耳熟能详了,在这里就不必赘述细节了,主要注意以下几点:

  • 选择合适的Package, 比如针对MongoDB有很多连接方式,但是某些方式并没有连接池,当技术选型时,一定要选择正确的package。

  • 每个connection string对应一个连接池

  • 连接池有最大限制,sql server的最大连接默认为100

Redis连接池

在.NET中,大家都使用StackExchange.Redis来连接Redis,但是此Client Library并没有Pool,大家可以考虑使用额外的第三方类库比如StackExchange.Redis.ConnectionPool等

SMTP连接池

在.NET中,大家一般使用SmtpClient发送邮件,SmtpClient 实现将 SMTP 连接池化,以避免重新建立与同一服务器的每条消息的连接开销。 应用程序可以重复使用同一 SmtpClient 对象将许多不同的电子邮件发送到同一 SMTP 服务器.

但请注意,现在官方文档推荐不使用SmtpClient, 而用MailKit替代,原因是Smtp不兼容新的协议。

👇欢迎扫码关注我的公众号👇
那些.NET中的连接池文章来源地址https://www.toymoban.com/news/detail-837925.html

到了这里,关于那些.NET中的连接池的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【创作赢红包】JDBC的“那些事“之数据库连接池

    Mysql版本:8.0.26 可视化客户端:sql yog 编译软件:IntelliJ IDEA 2019.2.4 x64 运行环境:win10 家庭中文版 jdk版本:1.8.0_361 Druid是阿里巴巴开源的一个高性能的JDBC连接池,它不仅提供了基本的连接池功能,还具有SQL监控,防御SQL注入攻击,数据源监控,配置灵活等优点,往往是是开发

    2023年04月09日
    浏览(52)
  • WebSocket的那些事(5-Spring中STOMP连接外部消息代理)

    上节我们在 WebSocket的那些事(4-Spring中的STOMP支持详解) 中详细说明了通过 Spring内置消息代理 结合 STOMP 子协议进行Websocket通信,以及相关注解的使用及原理。 但是Spring内置消息代理会有一些限制,比如只支持STOMP协议的一部分命令,像 acks 、 receipts 命令都是不支持的,还有

    2024年02月09日
    浏览(36)
  • 记录一下Java JDBC连接微软SQL Server遇到的那些坑

    最近忙实习,宅在国内远程办公,然后呢我的西班牙老板又要求我用Java做某个管理系统。由于我的电脑和公司的远程电脑上都装的是SQL Server 2019,为了图方便,我就没有换数据库系统软件,顺便随手建了个库建了个表来测试一下。 表大概长这么一个样子:  插入了一些数据

    2024年02月04日
    浏览(41)
  • WebSocket的那些事(5-Spring STOMP支持之连接外部消息代理)

    上节我们在 WebSocket的那些事(4-Spring中的STOMP支持详解) 中详细说明了通过 Spring内置消息代理 结合 STOMP 子协议进行Websocket通信,以及相关注解的使用及原理。 但是Spring内置消息代理会有一些限制,比如只支持STOMP协议的一部分命令,像 acks 、 receipts 命令都是不支持的,还有

    2024年02月09日
    浏览(41)
  • go vet中的那些检测项

    go vet 是 Go 语言自带的一个工具,用于分析 Go 代码中的常见错误和潜在问题。它可以检查代码中可能存在的各种问题,例如: 未使用的变量、函数或包 可疑的函数调用 错误的函数签名 程序中的竞态条件 错误的类型转换等 本文意图指令当前go vet所有的检测项及其作用 目前集

    2024年02月11日
    浏览(36)
  • HTML中script 标签中的那些属性

    在HTML中, script 标签用于嵌入或引用JavaScript代码。 在 script 标签中,有两个属性可以用来控制脚本的加载和执行方式: async 和 defer 。 当然这也是常见的一道面试题, async   和  defer 的作用和区别。 async 和 defer 属性都可以用于异步加载脚本,从而避免了在加载脚本时阻塞浏

    2024年02月01日
    浏览(49)
  • 【C++那些事儿】函数重载与C++中的“指针“——引用

    君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C++ 游戏开发 Hello,米娜桑们,这里是君兮_,我之前看过一套书叫做《明朝那些事儿》,把本来枯燥的历史讲的生动有趣。而C++作为一门接近底层的语言,无疑是抽象且难度颇深的。我希望能努力把抽象繁多的知识讲的生

    2024年02月08日
    浏览(45)
  • 19学习提升:gRPC源码中的那些优秀设计(上)

    gRPC作为高性能的RPC框架,离不开它优雅的设计和编码,无论是作为一名底层开发者还是上层的业务开发者,能够写出一手好的代码一直都是决定自身水平高低的一个重要体现,如果想要达到一个较高层次的水平,离不开长时间的学习和训练以及不断的感悟,而一些优秀的开源

    2023年04月09日
    浏览(32)
  • WebSocket的那些事(4-Spring中的STOMP支持详解)

    上节我们在 WebSocket的那些事(3-STOMP实操篇)中介绍了 STOMP 协议以及和 Spring 集成的简单示例,这一节我们我们将用一个聊天Demo程序详细介绍相关注解使用和原理、拦截器、用户身份校验、还有事件。 @MessageMapping :消息路由注解,功能和MVC的 @RequestMapping 等注解类似,被注解

    2024年02月07日
    浏览(42)
  • PerfView专题 (第十四篇): 洞察那些 C# 代码中的短命线程

    这篇文章源自于分析一些疑难dump的思考而产生的灵感,在dump分析中经常要寻找的一个答案就是如何找到死亡线程的生前都做了一些什么?参考如下输出: 前面的 XXXX 代表线程已死亡,那谁能告诉我 ID=22 的线程生前执行了什么代码呢?其实去年我写了一篇如何用 WinDbg 去寻找

    2024年02月17日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包