Wcf通訊基礎架構方案(六)解決方案說明以及原始碼

來源:互聯網
上載者:User

原始碼見 http://wcfextension.codeplex.com/

注意:

1) 本來沒打算這麼早開源,這隻是一個比較原始的實現,請勿直接在商業環境使用

2) 請注意本架構的授權條款Apache License 2.0

3) 本架構依賴的外部程式集或架構著作權歸原作者所有

4) 架構之後可能會增加很多功能,請關注項目首頁即使獲得最新資訊

解壓縮代碼開啟sln檔案後可以看到這樣的結構

1) WcfExtension就是核心架構:

Client檔案夾放的是用戶端用到的一些代碼,Server自然是服務端用到的一些代碼

Log是日誌相關的一些代碼(四種日誌),Config是配置相關的代碼

Setting是架構本身設定的一些代碼(比如配置是否要記錄日誌)

其它代碼放在父資料夾內,當然這裡還放了一些用於發布nuget包的檔案

至於nuget不想多介紹了(release方式編譯項目後會在ReleasePackages產生nupkg包)

2) WcfExtension.ConfigCenter就是佈建服務和配置的後台,設定檔中需要配置

A)redis的地址以及通知通道名

B)sql server設定資料庫的連接字串

C)佈建服務的wcf服務端配置

這裡需要注意幾點:

A)如果你的配置不希望儲存在sql server中,可以重寫WcfConfigService.cs

B)現在的後台非常簡易,就是一個WFWcfConfig.aspx,完全可以重寫

3) WcfExtension.LogCenter就是Log Service和日誌的查看後台,需要配置的東西和2)差不多,只不過注意要使用不同的連接埠

WcfLogService.cs同樣是一個簡單的實現,僅供參考,現在實現過程如下:

A)儲存到記憶體隊列

B)幾個線程定時批量把資料儲存到mongodb中

有關ConfigCenter和LogCenter還需要注意,在生產環境中為了高可用性可以使用IIS來承載tcp的wcf服務,做負載平衡。

但是為了測試簡單,在解決方案中有兩個臨時的Console應用程式,用於替代ConfigCenter和LogCenter。

4) WcfExtension.Clients.Console是測試的控制台用戶端,應該只依賴WcfExtension架構和服務契約也就是WcfExtension.Services.Interface

5) WcfExtension.Hosts.Console是測試的控制台服務端,需要依賴服務介面和服務實現,以及WcfExtension架構

6) WcfExtension.Services.Interface是服務契約,定義了一些簡單的測試方法

7) WcfExtension.Services.Implementation是服務實現,其下的LogService是用來測試服務依賴注入的

8) Libs目錄下是一些依賴的程式集,主要是redis的用戶端、mongodb的用戶端以及unity、log4get、nuget。

因為,可以這麼啟動項目進行測試:

先啟動佈建服務和Log Service,然後啟動服務端,最後啟動用戶端。

在運行起來之前,還需要建立表結構和類比資料(如果怕麻煩可以直接回複包裡面的WcfConfig.bak資料庫檔案),運行WcfExtension.ConfigCenter中的db.sql來建立資料表。

可以直接開啟表配置資料也可以使用配置後台,首先建立一個綁定Binding:

然後建立一個服務端點ServiceEndpoint,對應這個綁定:

然後建立一個服務Service:

然後建立服務的叢集ServerFarm:

最後是用戶端的端點ClientEndpoint:

和用戶端訪問叢集的許可權ClientAccess:

啟動四個項目後可以看到:

1) Log Service控制台上出現了各種日誌

2) 用戶端和服務端都顯示出了發送和接受的訊息

3) 如果在後台修改配置,並且點擊通知按鈕,用戶端和服務端應該會收到修改通知,然後刪除相應的緩衝或重啟服務使得配置立即生效

(其實在生產環境中,不太可能通知服務端重啟服務)

該說的前面幾次都說了,代碼並不複雜,看代碼就都可以理解了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.