簡體   English   中英

ADO.NET中的連接池與WCF中的節流的相似性

[英]Similarity of Connection pooling in ADO.NET and Throttling in WCF

有人可以向我解釋一下ADO.Net中的連接池和WCF中的節流在某種程度上是相同的。

他們似乎只是相似。

SQL連接池與重用有關。

連接到數據庫服務器通常包括幾個耗時的步驟。 必須建立一個物理通道(例如套接字或命名管道),必須與服務器進行初始握手,必須解析連接字符串信息,必須由服務器對連接進行身份驗證,必須運行檢查才能在當前列表中注冊交易等等。

實際上,大多數應用程序僅使用一種或幾種不同的配置進行連接。 這意味着在應用程序執行期間,許多相同的連接將被反復打開和關閉。 為了最大程度地減少打開連接的成本,ADO.NET使用了一種稱為連接池的優化技術。

連接池減少了必須打開新連接的次數。 池管理者維護物理連接的所有權。 它通過為每個給定的連接配置保留一組活動的連接來管理連接。 每當用戶在連接上調用“打開”時,池管理器就會在池中尋找可用的連接。 如果池化連接可用,它將把它返回給調用者,而不是打開一個新連接。

WCF節流是關於限制在應用程序級別創建多少服務實例或會話。

節流設置的主要目的可以分為以下兩個方面:

  1. 受控的資源使用 :通過並發執行的限制,可以將諸如內存或線程之類的資源的使用限制在合理的水平,以便系統正常運行而不會遇到可靠性問題。
  2. 平衡的性能負載 :控制負載時,系統始終以平衡的方式工作。 如果發生太多並發執行,則將發生大量爭用和簿記,從而會損害系統性能。

服務於兩個不同目的的兩個不同概念。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM