c# 分佈式系統開發

開篇吹牛,吹大牛了各位。java

接連幾篇博文,已經將了咱們系統經常使用的東西,主要針對服務端,非桌面系統。c#

聊了這麼久了,最後將這全部內容打包,完成一個系統。可能稱爲組件才合適,由於我沒有提供啓動程序。數組

每個模塊都是儘可能作到公共化,統一化緩存

總結一下:負載均衡

通訊組件,序列化組件,特性反射,擴展方法,結構返回模板,緩存,負載均衡,etcd的註冊中心(這個是在java部分講的,我只是提供了c#版本的客戶端代碼)。反射方法有了。運維

這樣組合起來,再加上大家的業務模塊,就是一個完整的系統了,任意使用組合。分佈式

我本身組合了一個,不知道叫什麼名字。暫時就叫特性服務吧。微服務

天下大勢,分久必合,合久必分。性能

最開始寫代碼,一個系統,一個項目到底。後面分項目,再後面分系統,再後面分佈式。.net

而後運維麻煩了,代碼要少要通用,再次合成通用的,最好一個組件不少功能。高大尚。。。。

如今呢?微服務來了,把你寫的多功能強大系統再分出來。哎。。。。

回到我這裏。

根據如今常常用到的三個方面。RPC,MQ另外加上RestFull模型。

統一一下,定義一個特性SrvAttribute,放在類上就是服務名稱,放在方法上就是要暴露的方法。

這樣提供TPC就能夠接收HTTP請求了,就是RestFull了。

定義一個公共的接口,服務端實現接口,或者不實現也能夠。只要把特性加上就是了。

客戶端實現接口,在實現的接口方法裏面,打包本身的參數,方法名稱,以及服務名稱;序列化之後傳遞到服務端

服務端反序列化,而後解析服務名稱,方法名稱,而後反射調用。

這樣就把2者合併了。

MQ怎麼辦?涼拌,本身寫個方法傳輸byte[]數組就是了,在服務端寫一個接收註冊的方法就是了。

就一個註冊分發,一個數據接收方法,保持註冊地址對象,就是一個MQ服務了,MQ須要開發服務端功能。

若是再加上etcd的分佈式部署,就是一個分佈式集羣了。

全部代碼項目都上傳了GIT,就是前幾篇博文的地址。

關於反射多說一下。

如今分了幾個平臺。

發現Emit確實快,可是它只支持.net framework,沒有支持,.net standar不支持,沒有辦法,就寫了2個相同的。

另外就是動態編譯,也是隻有.net framework,因此寫了個客戶端項目,動態編譯實現接口,這樣你只要一個接口庫就能夠了,什麼都不須要寫,配置寫好就能夠了。動態編譯裏面自動繼承接口,而後打包方法參數,名稱。定時編譯緩存dll,下次啓動就直接動態加載dll就能夠了。RPC你什麼都不作,就是用結果,設置通訊就能夠。安逸吧?

若是是其它平臺就得直接實現接口打包參數了。

大吹牛就這樣結束了。剛剛買了一本.net性能的書,等我看完看有沒有和你們吹的。沒有的話就基本這樣了。

好久沒有來csdn了。來了就係統的和你們吹牛皮。

相關文章
相關標籤/搜索