1:前言
看到這個題目也許有的朋友會問對資料訪問層擴充套件為分布式有沒有意義,因為不管怎樣到最後都是對資料庫進行訪問,瓶頸在資料庫上。對於這個問題我的答案是「我們提供分布式的查詢能力然後和快取結合讓資料庫中的資料快取起來」。解決這個問題後我們來進入正題,如何對資料訪問層進行封裝。其實資料訪問層的方法我們常用的是executedataset,executenonquery,executereader,executescalar等這四個方法。
2:類圖
3:原理
wcf中可以返回序列化的物件而dataread是不能被序列化的(網上有人說可以讓乙個序列化的物件持有dataread屬性,這個方法根本不行)
這裡我們就說說如何通過wcf來返回datareader。
看過底層**(system.data.sqlclient)的都知道,微軟在實現executereader這個方法的時候是用了乙個類似於游標的東西。每read一次游標就向下走一行。
這裡我們可以借鑑這個思想。我們首先把所有idatareader中的方法定義到契約中。然後讓客戶端實現該契約,這樣客戶端每read一次服務端也同樣read一次。這樣我們就可以獲取到該行相應的字段值了。不過這種方法要求wcf的例項模型是persession而併發模型是multiple。
4:一些問題
wcf在開啟通道的時候如果通過這種方法
new channelfactory
<
iadohelper
>
(endpointconfigkey).createchannel();
在壓力測試的時候會報錯。只有通過以下方法
new channelfactory
<
iadohelper
>
(bind, address).createchannel();
還有就是wcf中的通道池不知道怎麼開啟。maxconnection好像不起作用,因此自己就實現了物件池來解決通道池的問題。【哪位仁兄知道不吝賜教】
分布式快取
分布式檔案系統
架構設計之分布式快取
1 前言 我們在開發系統的過程中,快取是個有用的模組。下面我就把我們的快取模組給大家做個簡單介紹。2 類圖 看不清楚?這裡檢視原圖 大圖 3 簡單介紹 快取分為兩個部分。乙個是快取結構乙個是儲存結構。快取結構主要解決物件什麼時候過期而儲存結構主要解決物件儲存到什麼地方。3.1快取結構 我們在處理快取...
架構設計之分布式快取
1 前言 我們在開發系統的過程中,快取是個有用的模組。下面我就把我們的快取模組給大家做個簡單介紹。2 類圖 3 簡單介紹 快取分為兩個部分。乙個是快取結構乙個是儲存結構。快取結構主要解決物件什麼時候過期而儲存結構主要解決物件儲存到什麼地方。3.1快取結構 我們在處理快取過期這個功能的時候提供了兩種過...
fastdfs分布式架構設計
clevercode在自己的虛擬機器中準備搭建一下分布式架構。2.1 安裝tracker 安裝詳解參考 2.2 配置tracker a 首次安裝 vi etc fdfs tracker.conf base path data0 fastdfs tracker usr local bin fdfs t...