有人可以解释一下,ADO.Net中的连接池和WCF中的Throttling有些相同。
答案 0 :(得分:1)
它们看起来很相似。
SQL Connection Pooling是关于重复使用。
连接到数据库服务器通常包含几个 耗时的步骤。物理通道,例如套接字或命名 必须建立管道,与服务器的初始握手必须 发生时,必须解析连接字符串信息 连接必须由服务器进行身份验证,必须运行检查 参与当前交易,等等。
实际上,大多数应用程序只使用一种或几种不同的应用程序 连接配置。这意味着在申请期间 执行时,将重复打开许多相同的连接 关闭。 为了最大限度地降低打开连接的成本,ADO.NET使用了 称为连接池的优化技术。
连接池减少了新连接的次数 必须打开。 pooler保持物理连接的所有权。它管理 通过为每个连接保持一组活动连接来实现连接 给定连接配置。每当用户在连接上调用Open时,该pooler 在池中查找可用的连接。如果是汇集连接 可用,它将它返回给调用者而不是打开一个新的 连接。
WCF Throttling是关于限制在应用程序级别创建的服务实例或会话数。
The main purpose for the throttling settings可分为以下两个方面:
- 受控资源使用情况:并发限制 执行时,可以使用内存或线程等资源 限制在合理的水平,以便系统运行良好 遇到可靠性问题。
- 平衡的效果加载: 当负载受到控制时,系统始终以平衡的方式工作。 如果发生了太多的并发执行,那么很多 争用和簿记会发生,因此会伤害到 系统的性能。
醇>
两个不同的概念用于两个不同的目的。