版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
BF-TECH4.0DNET軟件開發(fā)工程師高薪就業(yè)品牌課程
版權(quán)所有:北風網(wǎng)
使用WCF搭建企業(yè)通用架構(gòu)
講師:石曼迪項目案例2:WCF企業(yè)開發(fā)架構(gòu)目錄WCF分布式開發(fā)框架的設計目標WCF分布式開發(fā)框架基本結(jié)構(gòu)WCF分布式開發(fā)每個部分說明分布式緩存redis介紹分布式數(shù)據(jù)庫Mongodb介紹框架調(diào)用示例課程目標掌握WCF分布式開發(fā)框架WCF分布式開發(fā)框架設計目標負載均衡協(xié)議集成動態(tài)部署服務管理分布式訪問緩存、配置、同步運行監(jiān)控日志、異常……WCF分布式開發(fā)框架設計目標減少客戶端調(diào)用的復雜度,調(diào)用方式簡化。不需要考慮:endpoint配置,信道創(chuàng)建,信道出問題等等問題。希望減少服務端配置的復雜度,沒有配置文件(或者說配置文件不需要更改),所有和服務相關(guān)的元數(shù)據(jù)處于數(shù)據(jù)庫中,這樣客戶端也沒有配置。有后臺來管理所有元數(shù)據(jù)的配置,并且可以在配置更改的時候通知相關(guān)的客戶端來重新建立信道,通知相關(guān)的服務端來重啟服務。具備路由功能,比如優(yōu)先考慮IPC/TCP的信道而不是HTTP的信道,引用了高版本服務契約的客戶端優(yōu)先訪問高版本服務契約的服務端。也就是說,在生產(chǎn)環(huán)境中,如果契約不兼容,可以再開一組高版本的服務端集群,客戶端一個一個更新契約,一個一個引入高版本的服務端,等更新全部完成之后再撤去老版本的服務端。在下面幾個維度建立日志:
A)調(diào)用信息,客戶端調(diào)用遠程方法結(jié)束后記錄,服務端完成遠程方法執(zhí)行后記錄,可以記錄調(diào)用的方法名、服務名、所需時間、兩端版本、兩端機器名等信息B)啟動信息,客戶端第一次建立信道工廠的時候記錄,服務端第一次啟動服務的時候記錄C)消息信息,客戶端收到和發(fā)送的消息,服務端收到和發(fā)送的消息D)異常信息,服務端產(chǎn)生的異常,客戶端收到的經(jīng)過包裝的異常WCF分布式開發(fā)框架設計目標日志的記錄策略本身是在數(shù)據(jù)庫中配置的,日志記錄到存儲中,使用Mongodb的Nosql技術(shù)
服務的消費者和提供者只需要考慮怎么去寫服務,其它的配置/部署/橫切等等基礎工作全都不需要考慮,配置集中對于部署有好處,各種具有獨立開關(guān)的日志對于故障排查有好處。WCF分布式開發(fā)框架設計目標框架主體,主要分為四個部分
A)Client是所有和客戶端信道、代理、行為相關(guān)的東西,實現(xiàn)調(diào)用的代理以及日志的收集
B)Server是所有和服務端相關(guān)的東西,包括服務的IOC、各種日志收集、異常處理、服務行為等
C)Log包括IWcfLogService服務契約以及、數(shù)據(jù)契約和數(shù)據(jù)的收集模塊
D)Config包括IWcfConfigService服務契約、相關(guān)的數(shù)據(jù)契約(也包括框架本身的配置)WCF分布式開發(fā)框架基本結(jié)構(gòu)WCF分布式開發(fā)框架基本結(jié)構(gòu)WCF分布式開發(fā)框架基本結(jié)構(gòu)Client文件夾放的是客戶端用到的一些代碼,Server自然是服務端用到的一些代碼Log是日志相關(guān)的一些代碼(四種日志),Config是配置相關(guān)的代碼Setting是框架本身設置的一些代碼(比如配置是否要記錄日志)WcfExtension.ConfigCenter就是配置服務和配置的后臺,配置文件中需要配置
A)redis的地址以及通知通道名
B)sqlserver配置數(shù)據(jù)庫的連接字符串
C)配置服務的wcf服務端配置WcfExtension.LogCenter就是日志服務和日志的查看后臺,需要配置的東西和2)差不多,只不過注意要使用不同的端口
A)保存到內(nèi)存隊列
B)幾個線程定時批量把數(shù)據(jù)保存到mongodb中WCF分布式開發(fā)框架基本結(jié)構(gòu)WcfExtension.Clients.Console是測試的控制臺客戶端,應該只依賴WcfExtension框架和服務契約也就是WcfExtension.Services.InterfaceWcfExtension.Hosts.Console是測試的控制臺服務端,需要依賴服務接口和服務實現(xiàn),以及WcfExtension框架WcfExtension.Services.Interface是服務契約,定義了一些簡單的測試方法WcfExtension.Services.Implementation是服務實現(xiàn),其下的LogService是用來測試服務依賴注入的Libs目錄下是一些依賴的程序集,主要是redis的客戶端、mongodb的客戶端以及unity、log4get、nugetWCF分布式開發(fā)框架集中配置1)Service表描述的是服務,主要保存服務行為以及服務的配置。在這里,ServiceConfig是框架內(nèi)用到的配置,比如各種日志是否要記錄等等。服務對應到服務的集群,集群公開一個地址,客戶端訪問這個地址,也就是一個負載均衡的虛擬IP地址。2)一個Service可以有多個ServiceEndpoint,ServiceEndpoint中定義了契約的版本,類型和行為,以及涉及到地址的端口、端點名字等??蛻舳撕头斩瞬渴鸬姆掌跫s版本號不一定是一致的,在選擇端點的時候優(yōu)先選擇匹配的版本。3)一個ServiceEndpoint對應一個Binding,一個Binding也可以對應多個ServiceEndpoint。Binding表中記錄了綁定類型、優(yōu)先級、以及協(xié)議前綴和綁定的Xml配置。在選擇服務端點的時候會優(yōu)先選擇優(yōu)先級別比較高的綁定。4)ClientAccess表主要用于限制哪些客戶端機器可以訪問哪些服務集群。5)ClientEndpoint表主要用于設置ClientEndpoint的行為Xml(和ServiceEndpoint行為Xml不能保持一致,對于綁定客戶端和服務端是公用的)。WCF分布式開發(fā)框架集中配置客戶端會根據(jù)契約的類型來緩存信道工廠,每一次使用了信道之后都會正確關(guān)閉,這個是通過WcfChannelWrapper保證的。更多有關(guān)客戶端的內(nèi)容會在下次介紹,本次只是介紹配置集中。對于日志服務和配置服務的配置,沒有定義在數(shù)據(jù)庫中,而是寫死的,只有地址是可以配置的配置文件中的。日志服務和配置服務不但是業(yè)務的客戶端需要使用,業(yè)務的服務端也是需要使用的,所以不管是客戶端還是服務端都需要配置兩個基礎服務的地址。雖然是寫死在配置文件中的,但是一般生產(chǎn)環(huán)境會配置一個虛擬IP地址,把這2個服務做成負載均衡的服務,地址一般不會變動。和服務端一樣,也加上了框架本身需要的一些擴展,比如MessageInspectorEndpointBehavior。最后,配置集中的好處:
1)可以靈活修改各種服務的行為、端點的行為,統(tǒng)一管理地址。 2)可以做一些版本控制的路由、權(quán)限控制、綁定優(yōu)先級控制等等。 3)可以基于這些元數(shù)據(jù)做一些監(jiān)控等。WC鼓F分布株式開撈發(fā)框滑架客揉戶端WC沫F分布燙式開姐發(fā)框歪架日賊志W(wǎng)C牛F分布價式開葛發(fā)框憶架日涼志1)Pr云ov勉id習eF儲au挪lt的時暈候我蓮們會膏把異管常包憐裝為位一個Fa泄ul扁tE捆xc慕ep拆ti套on提供網(wǎng)給客嘴戶端錫。2)臟會把這服務蹈端異皂常的ID在消袖息頭抵中傳趴給客盾戶端賴,這施個異交常ID就是銅服務燃端記碧錄的辱異常擋的ID??蛻敉诵韬菀獋髋d給服蠶務端Re酷qu甩es洗tI扔de映nt蘇it柏y,服刻務端夢需要懲傳給鑼客戶巾端異款常ID,客獸戶端巡壽需要鄉(xiāng)豐傳給瘦服務瘡端客泰戶端譯契約躲的版頁本和皇客戶睡端的汗機器挽名,稀而服冬務端批也需迷要把改自己謹?shù)臋C騰器名算和契被約版手本傳晨給客搬戶端責。這惑都是農(nóng)通過汁定義恥上下海文類糾,在現(xiàn)消息顯頭中櫻傳遞笑進行禁的:1)冒在IC遮li塌en似tM嗎es伐sa棗ge為In啊sp您ec若to歌r中,胸發(fā)送避消息貝之前喉把服研務端及需要娘的上歌下文織準備棒好,醬加入膠頭傳阻過去頭,在悠收到含服務用端返溝回的撓消息邀之后啟建立頸客戶婆端的擁上下井文。2)毅在ID匪is善pa供tc中hM頌es螞sa單ge們In耳sp艱ec方to見r中反皂過來爭,收近到消脊息之谷后建輔立服楊務端將上下帆文,左發(fā)回狐復之湖前把躬客戶燙端需顯要的稼上下碎文數(shù)頁據(jù)準敏備好折加入邁頭中傲。對于伙分布鄉(xiāng)豐式的挖服務碗來說至,服蠟務端涌可能跟又會蝴是其奸他服喬務的千客戶針端,剩錯綜菜復雜最,橫均切關(guān)各注點覽尤其駐重要收,因副為這偷個框豈架很脖大一墨部分仿在實伯現(xiàn)這鹿個。WC望F分布昏式開姨發(fā)框劃架日信志1)泉這里輝的日噸志我劉們會孫保存各在Mo戴ng而od畫b中,傘會有你一些At咸tr黎ib愚ut皺e告訴歪日志低服務析端,側(cè)字段登是否帽需要國做索逝引,稿是否枯需要施分庫楊等等晚。2)糠每一理條日儉志都逃會有腎一個GU身ID作為ID,這薪個沒起什么燥特別賴的。票但要度注意殿一點妨,如方果服療務端宋執(zhí)行設方法饞出現(xiàn)架異常仇的話放,會瓜把異津常ID在Me紋ss牙ag嘴e里面澇返回貪給客縣戶端壘。這吳個異圖常ID也就性是這盒條異虛常日贊志的ID??痛饝舳搜b只能乏收到泰有關(guān)枕服務賓端異儉常的Me役ss閉ag手e而不芒會收缸到更感多的孔堆??暗刃鸥?。作原因隔兩個脹,一片減少Fa葛ul映t消息夏大小齡,二毀客戶飯端也炎不應開該知嘆道這擴么多在服務答端的廚信息廢,客爭戶端戒也不醬一定站能理錦解服晌務端曾的異喉常,娛服務美端有辨自己慘的異應常日螺志。3)謝每一減條日涉志都縣會有罩一個Re潤qu痰es演tI臺de刑nt紅it地y,這恒是一督個請秩求的種上下慘文關(guān)學聯(lián)字標段。糖從客譽戶端者發(fā)出丸請求峰開始蛇,到鳥服務瓦端處拾理,絡再到氧客戶麥端接遭收到宵服務售端的升反饋自消息咳。其利中所剝有的芽調(diào)用深日志盛、異脖常日殿志和膠消息僵日志咐都會貿(mào)有相幣同的Re其qu枕es華tI庫de陰nt垮it病y。也蔥就是版說在決后臺雜通過博這個Re掩qu延es框tI蔬de內(nèi)nt斑it瞞y可以辭查詢武到一嗎條一殺種類狗型的騙日志丹關(guān)聯(lián)杰的整劈燕個請炮求過怖程中跌的其芳它日獄志。裝打個累比方洞,如貨果在咳查看震客戶嗚端執(zhí)魯行日李志的饑時候速發(fā)現(xiàn)捆方法校執(zhí)行枕失敗莖,那歉么直傻接可害以查境看到饞對應判的服草務端活失敗覆的那論條執(zhí)包行日藏志,姓以及戴服務犧端對課應的椅那個懂異常茂日志激和客隊戶端陰對應旨的異喪常的段日志否,如辦果開叮啟消月息日恭志的堡話,返還可嶄以查與到對少應的唐客戶慣端和愁服務鄭端收嚴發(fā)的欣消息沖。4)隨每條處日志監(jiān)都會尋有機爛器名慶和機河器IP地址街,以看及時海間。Ex心tr丟aI階nf院o存的遵是一環(huán)些其賢它信按息,嫂在這詢里我擺存的鞏是記饑錄這俊個日侄志的什方法差名稱捧。WC棉F分布脾式開急發(fā)更區(qū)新通這知對于或負載瓶均衡葡環(huán)境餅,多拆服務拐器內(nèi)強存中嗽緩存原數(shù)據(jù)醋的話紙,需挎要解標決的摟一個驚很重窗要的蛛問題擔就是曲一旦傾數(shù)據(jù)魯庫中怨數(shù)據(jù)航有更率新,且怎么叔讓緩歐存的峰數(shù)據(jù)速立即哨更新曲?如果讀可以策容忍槽延遲掛或是臨差異市性的臉話,臨可以鉆考慮頭緩存添的數(shù)汪據(jù)有住一個突過期針時間具。但遵是,剩最好南的方卸式還夾是采爽用通灑知方投式,漂或者夫說發(fā)屆布訂仙閱方瞎式。所有晌的客因戶端壯會訂賓閱客奧戶端雅配置臉修改陽的消蠶息,霧所有宰的服穗務端激會訂撞閱服蹄務端洽配置爆修改諒的消漁息,節(jié)配置頂后臺存在修艱改后掌復雜蝴發(fā)布煙這個捉消息月。在這鎖里采飾用re隨di騎s作為屋發(fā)布室訂閱柄的服栗務端車,利蓄用TC尚P雙工平特性鍋與所場有客診戶端肺和服麥務端看保持牛長連同接,松進行警消息顏的推錢送。在初護始化鹿信道啄工程陰緩存紫的時討候會躲調(diào)用Cr百ea抄te堵Re往di耽sS叨ub謝Th脆re江ad方法曾,完鴿成兩村個工睛作:1)頌啟動盯心跳順檢測腰定時隙器,卵如果惠過長反時間駛都沒假有收佩到訂突閱心隙跳消浩息的頃話,址重新帥嘗試彈建立圍訂閱致通道閱。2)嚷后臺出線程缸接受吵訂閱蹲的消網(wǎng)息,位如果也契約紅類型頂在當稼前的快信道盈工廠昌緩存滋中的羽話,康刪除恐緩存鋸等待驢重新批建立稼。WC攏F分布即式開彼發(fā)數(shù)顯據(jù)訪炕問。WC顯F分布財式開伴發(fā)數(shù)蘿據(jù)訪稠問每個網(wǎng)業(yè)務前對應霸的SQ液L處理予語句費,都潮有一撫個唯呀一的Co我mm鑄an裕dN突am罷e,收沙錄到框多個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年廣告投放銷售合同
- 2024年成都客車從業(yè)資格證題庫及答案
- 2024年成都客運從業(yè)資格證考試試題和答案
- 2024年黑龍江客運資格考試考題及答案詳解
- 2024年咨詢服務協(xié)議修訂附錄樣本
- 2024年山西客運旅客急救考試
- 2024年周口客運從業(yè)資格證到期換證考試
- 04版·高端裝備制造技術(shù)許可合同
- 2024年海南客運資格證考試實際操作試題
- 23伴性遺傳(B卷提升能力)-2021-2022學年高一生物單元AB卷(人教版2019必修2)(原卷版)
- 新人教PEP版六年級上冊英語Unit 4單元測試卷(含聽力音頻)
- 工匠精神之資產(chǎn)負債表重構(gòu)
- 300萬噸鋼鐵工程項目可行性研究報告書
- 非金屬膨脹節(jié)采購技術(shù)協(xié)議(茶園)
- 場地平整工程施工方案(完整版)
- 婦產(chǎn)科診療常規(guī)
- 《風景園林工程》word版
- 實驗室生物安全委員會及其工作職責
- JJF(鄂) 90-2021 電子輥道秤校準規(guī)范(高清版)
- ISO-IEC17025-2017實驗室管理體系全套程序文件
- 上好一節(jié)消防課(課堂PPT)
評論
0/150
提交評論