聊聊.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不兼容新的协议。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735407.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全测试报告-模板内容

1. 概述 为检验XXXX平台 系统的安全性,于 XXXX年 XX 月 XX 日至 XXXX年 XX 月 XX日对目标系统进行了安全测试。在此期间测试人员将使用各 种非破坏性质的攻击手段,对目标系统做深入的探测分析,进而挖掘系统中的安 全漏洞和风险隐患。研发团队…

代码讲解:如何把3D数据转换成旋转的视频?

目录 3D数据集下载 读取binvox文件 使用matplotlib创建图 动画效果 完整代码 3D数据集下载 这里以shapenet数据集为例,可以访问外网的可以去直接申请下载;我也准备了一个备份在百度网盘的数据集,可以参考: ShapeNet简介和下…

Java适配器模式源码剖析及使用场景

文章目录 一、适配器模式介绍二、大白话理解三、 项目案例四、Java源码 一、适配器模式介绍 适配器模式(Adapter Pattern)是一种结构型设计模式,它作用于将一个类的接口转换成客户端所期望的另一种接口,从而使原本由于接口不兼容而无法一起工作的那些类可以在一起工作。它属于…

Vue3中Vue Router的使用区别

在 Vue 3 中,useRouter 和 useRoute 是两个用于 Vue Router 的 Composition API 函数,它们的用途和返回的对象不同,接下来详细了解一下它们的区别以及如何正确使用它们。 useRouter useRouter 用于获取 router 实例,这个实例提供…

macOS14.4安装FFmpeg及编译FFmpeg源码

下载二进制及源码包 二进制 使用brew安装ffmpeg : brew install ffmpeg 成功更新到ffmpeg6.1 下载FFmpeg源码

MIT 6.858 计算机系统安全讲义 2014 秋季(三)

译者:飞龙 协议:CC BY-NC-SA 4.0 SSL/TLS 和 HTTPS **注意:**这些讲座笔记略有修改自 2014 年 6.858 课程网站上发布的笔记。 这节课涉及两个相关主题: 如何在比 Kerberos 更大规模上加密保护网络通信? 技术&#xf…

LVS (Linux Virtual server)集群介绍

一 集群和分布式 (一)系统性能扩展方式: Scale UP:垂直扩展,向上扩展,增强,性能更强的计算机运行同样的服务 (即升级单机的硬件设备) Scale Out:水平扩展&#xff0…

Anaconda prompt运行打开jupyter notebook 指令出错解决方案

一、打不开jupyter notebook网页 报错如下: Traceback (most recent call last): File “D:\anaconda3\lib\site-packages\notebook\traittypes.py”, line 235, in _resolve_classes klass self._resolve_string(klass) File “C:\Users\DELL\AppData\Roaming\Py…

单文件组件SFC及Vue CLI脚手架的安装使用

单文件组件SFC及Vue CLI脚手架的安装使用 Vue 单文件组件(又名 *.vue 文件,缩写为 SFC)是一种特殊的文件格式,它允许将 Vue 组件的模板、逻辑 与 样式封装在单个文件中。 为什么要使用 SFC 使用 SFC 必须使用构建工具&#xff…

Pycharm jupyter server process exited with code 1

Pycharm jupyter server process exited with code 1 1. 问题描述2. 原因和解决方法 1. 问题描述 使用 Pycharm 启动 Jupyter 时,报错如下, jupyter server process exited with code 12. 原因和解决方法 Pycharm 启动 jupyter 时,默认的 …

Linux:开源世界的基石

Linux:开源世界的基石 在信息技术的海洋中,Linux像一座灯塔,照亮了开源文化的道路,成为了无数技术爱好者、开发者和企业的选择。作为一个操作系统的内核,Linux的出现犹如一阵清风,打破了操作系统市场的一统…

Vue class和style绑定:动态美化你的组件

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

考研经验|如何从考研失败中走出来?

对我来说,太丢人了 其实我在本科的时候在同学眼中,一直很优秀,每年奖学金必有我的,国家励志奖学金,国家奖学金,这种非常难拿的奖学金,我也拿过,本科期间学校有一个公费去新西兰留学的…

初识C语言—字符串、转义字符、注释

字符串 字符串就是一串字符 用英文双引号括起来的字符 int main() {"dasgfhjkasg\n""hello world!"return 0; } 字符串的结束标志是\0这个转义字符 如何证明呢? int main() {//字符数组 - 数组是一组相同类型的元素char arr[] "hel…

基于注解完成基本类型属性赋值 (DI)

在上一篇文章中,介绍了如何基于注解的方式自动为引用类型的属性赋值,这里介绍如何为基本类型的属性赋值。 为基本类型的属性赋值,使用注解Value。通常用于注入外部数据,或者我们可以直接手动赋值。 步骤如下: 声明外…

【个人开发】llama2部署实践(一)——基于CPU部署

1. Anaconda安装 mkdir -p /opt/anaconda cd /opt/anaconda # 参考链接:https://repo.anaconda.com/archive/index.html wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh sh Anaconda3-2023.07-2-Linux-x86_64.sh2.安装git yum inst…

【动态规划】代码随想录算法训练营第四十三天 |1049. 最后一块石头的重量 II,494. 目标和,474.一和零 (待补充)

1049. 最后一块石头的重量 II 1、题目链接:. - 力扣(LeetCode) 2、文章讲解:代码随想录 3、题目: 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出任意两块石头,然后…

PCB行业IPC标准内容介绍及子标准文件总结

🏡《总目录》 目录 1,概述2,标准内容简介3,IPC标准总结4,总结1,概述 IPC二级标准是针对电路板质量而制定的国际标准。它主要涉及到电路板的设计、制造和检验等方面,旨在确保电路板的质量、可靠性和性能达到一定的标准。 2,标准内容简介 IPC标准主要包括如下四个方面的…

Text Field文本输入框

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Text Field文本输入框 一、最基本的本文输入框1、基础示例2、一些表单属性3、验证 二、多行文本 一、最基本的本文输入框 1、基础示例 import {Box, TextField} from "…

Ele admin pro和iView Admin pro的用户管理页面对比

Ele admin pro和iView Admin pro都是非常优秀的B端框架,功能大同小异,本文就着重比对一下二者的用户案例页面,让老铁们感知一些细节。 一、用户列表 用户列表 用户列表 二、用户编辑 三、用户添加 四、角色管理 五、权限分配 六、角色添加