開篇吹牛,吹大牛了各位。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了。來了就係統的和你們吹牛皮。