




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
BF-TECH4.0DNET软件开发工程师高薪就业品牌课程
版权所有:北风网
使用WCF搭建企业通用架构
讲师:石曼迪项目案例2:WCF企业开发架构目录WCF分布式开发框架的设计目标WCF分布式开发框架基本结构WCF分布式开发每个部分说明分布式缓存redis介绍分布式数据库Mongodb介绍框架调用示例课程目标掌握WCF分布式开发框架WCF分布式开发框架设计目标负载均衡协议集成动态部署服务管理分布式访问缓存、配置、同步运行监控日志、异常……WCF分布式开发框架设计目标减少客户端调用的复杂度,调用方式简化。不需要考虑:endpoint配置,信道创建,信道出问题等等问题。希望减少服务端配置的复杂度,没有配置文件(或者说配置文件不需要更改),所有和服务相关的元数据处于数据库中,这样客户端也没有配置。有后台来管理所有元数据的配置,并且可以在配置更改的时候通知相关的客户端来重新建立信道,通知相关的服务端来重启服务。具备路由功能,比如优先考虑IPC/TCP的信道而不是HTTP的信道,引用了高版本服务契约的客户端优先访问高版本服务契约的服务端。也就是说,在生产环境中,如果契约不兼容,可以再开一组高版本的服务端集群,客户端一个一个更新契约,一个一个引入高版本的服务端,等更新全部完成之后再撤去老版本的服务端。在下面几个维度建立日志:
A)调用信息,客户端调用远程方法结束后记录,服务端完成远程方法执行后记录,可以记录调用的方法名、服务名、所需时间、两端版本、两端机器名等信息B)启动信息,客户端第一次建立信道工厂的时候记录,服务端第一次启动服务的时候记录C)消息信息,客户端收到和发送的消息,服务端收到和发送的消息D)异常信息,服务端产生的异常,客户端收到的经过包装的异常WCF分布式开发框架设计目标日志的记录策略本身是在数据库中配置的,日志记录到存储中,使用Mongodb的Nosql技术
服务的消费者和提供者只需要考虑怎么去写服务,其它的配置/部署/横切等等基础工作全都不需要考虑,配置集中对于部署有好处,各种具有独立开关的日志对于故障排查有好处。WCF分布式开发框架设计目标框架主体,主要分为四个部分
A)Client是所有和客户端信道、代理、行为相关的东西,实现调用的代理以及日志的收集
B)Server是所有和服务端相关的东西,包括服务的IOC、各种日志收集、异常处理、服务行为等
C)Log包括IWcfLogService服务契约以及、数据契约和数据的收集模块
D)Config包括IWcfConfigService服务契约、相关的数据契约(也包括框架本身的配置)WCF分布式开发框架基本结构WCF分布式开发框架基本结构WCF分布式开发框架基本结构Client文件夹放的是客户端用到的一些代码,Server自然是服务端用到的一些代码Log是日志相关的一些代码(四种日志),Config是配置相关的代码Setting是框架本身设置的一些代码(比如配置是否要记录日志)WcfExtension.ConfigCenter就是配置服务和配置的后台,配置文件中需要配置
A)redis的地址以及通知通道名
B)sqlserver配置数据库的连接字符串
C)配置服务的wcf服务端配置WcfExtension.LogCenter就是日志服务和日志的查看后台,需要配置的东西和2)差不多,只不过注意要使用不同的端口
A)保存到内存队列
B)几个线程定时批量把数据保存到mongodb中WCF分布式开发框架基本结构WcfExtension.Clients.Console是测试的控制台客户端,应该只依赖WcfExtension框架和服务契约也就是WcfExtension.Services.InterfaceWcfExtension.Hosts.Console是测试的控制台服务端,需要依赖服务接口和服务实现,以及WcfExtension框架WcfExtension.Services.Interface是服务契约,定义了一些简单的测试方法WcfExtension.Services.Implementation是服务实现,其下的LogService是用来测试服务依赖注入的Libs目录下是一些依赖的程序集,主要是redis的客户端、mongodb的客户端以及unity、log4get、nugetWCF分布式开发框架集中配置1)Service表描述的是服务,主要保存服务行为以及服务的配置。在这里,ServiceConfig是框架内用到的配置,比如各种日志是否要记录等等。服务对应到服务的集群,集群公开一个地址,客户端访问这个地址,也就是一个负载均衡的虚拟IP地址。2)一个Service可以有多个ServiceEndpoint,ServiceEndpoint中定义了契约的版本,类型和行为,以及涉及到地址的端口、端点名字等。客户端和服务端部署的服务契约版本号不一定是一致的,在选择端点的时候优先选择匹配的版本。3)一个ServiceEndpoint对应一个Binding,一个Binding也可以对应多个ServiceEndpoint。Binding表中记录了绑定类型、优先级、以及协议前缀和绑定的Xml配置。在选择服务端点的时候会优先选择优先级别比较高的绑定。4)ClientAccess表主要用于限制哪些客户端机器可以访问哪些服务集群。5)ClientEndpoint表主要用于设置ClientEndpoint的行为Xml(和ServiceEndpoint行为Xml不能保持一致,对于绑定客户端和服务端是公用的)。WCF分布式开发框架集中配置客户端会根据契约的类型来缓存信道工厂,每一次使用了信道之后都会正确关闭,这个是通过WcfChannelWrapper保证的。更多有关客户端的内容会在下次介绍,本次只是介绍配置集中。对于日志服务和配置服务的配置,没有定义在数据库中,而是写死的,只有地址是可以配置的配置文件中的。日志服务和配置服务不但是业务的客户端需要使用,业务的服务端也是需要使用的,所以不管是客户端还是服务端都需要配置两个基础服务的地址。虽然是写死在配置文件中的,但是一般生产环境会配置一个虚拟IP地址,把这2个服务做成负载均衡的服务,地址一般不会变动。和服务端一样,也加上了框架本身需要的一些扩展,比如MessageInspectorEndpointBehavior。最后,配置集中的好处:
1)可以灵活修改各种服务的行为、端点的行为,统一管理地址。 2)可以做一些版本控制的路由、权限控制、绑定优先级控制等等。 3)可以基于这些元数据做一些监控等。WC鼓F分布株式开捞发框滑架客揉户端WC沫F分布烫式开姐发框歪架日贼志WC牛F分布价式开葛发框忆架日凉志1)Pr云ov勉id习eF储au挪lt的时晕候我莲们会膏把异管常包怜装为位一个Fa泄ul扁tE捆xc慕ep拆ti套on提供网给客嘴户端锡。2)脏会把这服务蹈端异皂常的ID在消袖息头抵中传趴给客盾户端赖,这施个异交常ID就是铜服务燃端记碧录的辱异常挡的ID。客户望端需狠要传兴给服蚕务端Re酷qu甩es洗tI扔de映nt苏it柏y,服刻务端梦需要惩传给锣客户巾端异款常ID,客兽户端巡寿需要乡丰传给瘦服务疮端客泰户端译契约躲的版页本和皇客户睡端的汗机器挽名,稀而服冬务端批也需迷要把改自己谨的机腾器名算和契被约版手本传晨给客搬户端责。这惑都是农通过汁定义耻上下海文类纠,在现消息显头中樱传递笑进行禁的:1)冒在IC遮li塌en似tM吗es伐sa枣ge为In啊sp您ec若to歌r中,胸发送避消息贝之前喉把服研务端及需要娘的上歌下文织准备棒好,酱加入胶头传阻过去头,在悠收到含服务用端返沟回的挠消息邀之后启建立颈客户婆端的拥上下井文。2)毅在ID匪is善pa供tc中hM颂es蚂sa单ge们In耳sp艰ec方to见r中反皂过来争,收近到消脊息之谷后建辅立服杨务端将上下帆文,左发回狐复之湖前把躬客户烫端需显要的稼上下碎文数页据准敏备好折加入迈头中傲。对于伙分布乡丰式的挖服务碗来说至,服蜡务端涌可能跟又会蝴是其奸他服乔务的千客户针端,剩错综菜复杂最,横均切关各注点览尤其驻重要收,因副为这偷个框岂架很脖大一墨部分仿在实伯现这鹿个。WC望F分布昏式开姨发框划架日信志1)泉这里辉的日吨志我刘们会孙保存各在Mo戴ng而od画b中,伞会有你一些At咸tr黎ib愚ut皱e告诉歪日志低服务析端,侧字段登是否帽需要国做索逝引,稿是否枯需要施分库杨等等晚。2)糠每一理条日俭志都逃会有肾一个GU身ID作为ID,这薪个没起什么燥特别赖的。票但要度注意殿一点妨,如方果服疗务端宋执行设方法馋出现架异常仇的话放,会瓜把异津常ID在Me纹ss牙ag嘴e里面涝返回贪给客县户端垒。这吴个异图常ID也就性是这盒条异虚常日赞志的ID。客答户端装只能乏收到泰有关枕服务宾端异俭常的Me役ss闭ag手e而不芒会收缸到更感多的孔堆栈堪等信府息。作原因隔两个胀,一片减少Fa葛ul映t消息夏大小龄,二毁客户饭端也炎不应开该知叹道这扩么多在服务答端的厨信息废,客争户端戒也不酱一定站能理锦解服晌务端曾的异喉常,娱服务美端有辨自己惨的异应常日螺志。3)谢每一减条日涉志都县会有罩一个Re润qu痰es演tI台de刑nt红it地y,这恒是一督个请秩求的种上下惨文关学联字标段。糖从客誉户端者发出丸请求峰开始蛇,到鸟服务瓦端处拾理,络再到氧客户麦端接遭收到宵服务售端的升反馈自消息咳。其利中所剥有的芽调用深日志盛、异脖常日殿志和胶消息僵日志咐都会贸有相币同的Re其qu枕es华tI库de阴nt垮it病y。也葱就是版说在决后台杂通过博这个Re掩qu延es框tI蔬de内nt斑it瞒y可以辞查询武到一吗条一杀种类狗型的骗日志丹关联杰的整劈燕个请炮求过怖程中跌的其芳它日狱志。装打个累比方洞,如货果在咳查看震客户呜端执鲁行日李志的饥时候速发现捆方法校执行枕失败茎,那歉么直傻接可害以查境看到馋对应判的服草务端活失败覆的那论条执包行日藏志,姓以及戴服务牺端对课应的椅那个懂异常茂日志激和客队户端阴对应旨的异丧常的段日志否,如办果开叮启消月息日恭志的堡话,返还可崭以查与到对少应的唐客户惯端和愁服务郑端收严发的欣消息冲。4)随每条处日志监都会寻有机烂器名庆和机河器IP地址街,以看及时海间。Ex心tr丢aI阶nf院o存的遵是一环些其贤它信按息,嫂在这询里我摆存的巩是记饥录这俊个日侄志的什方法差名称捧。WC棉F分布脾式开急发更区新通这知对于或负载瓶均衡葡环境饼,多拆服务拐器内强存中嗽缓存原数据醋的话纸,需挎要解标决的搂一个惊很重窗要的蛛问题担就是曲一旦倾数据鲁库中怨数据航有更率新,且怎么叔让缓欧存的峰数据速立即哨更新曲?如果读可以策容忍槽延迟挂或是临差异市性的脸话,临可以钻考虑头缓存添的数汪据有住一个突过期针时间具。但遵是,剩最好南的方卸式还夹是采爽用通洒知方投式,漂或者夫说发届布订仙阅方瞎式。所有晌的客因户端壮会订宾阅客奥户端雅配置脸修改阳的消蚕息,雾所有宰的服穗务端激会订撞阅服蹄务端洽配置爆修改谅的消渔息,节配置顶后台存在修艰改后掌复杂蝴发布烟这个捉消息月。在这锁里采饰用re随di骑s作为屋发布室订阅柄的服栗务端车,利蓄用TC尚P双工平特性锅与所场有客诊户端肺和服麦务端看保持牛长连同接,松进行警消息颜的推钱送。在初护始化鹿信道啄工程阴缓存紫的时讨候会躲调用Cr百ea抄te堵Re往di耽sS叨ub谢Th脆re江ad方法曾,完鸽成两村个工睛作:1)颂启动盯心跳顺检测腰定时隙器,卵如果惠过长反时间驶都没假有收佩到订突阅心隙跳消浩息的顷话,址重新帅尝试弹建立围订阅致通道阅。2)嚷后台出线程缸接受吵订阅蹲的消网息,位如果也契约红类型顶在当稼前的快信道盈工厂昌缓存滋中的羽话,康删除恐缓存锯等待驴重新批建立稼。WC拢F分布即式开彼发数显据访炕问。WC显F分布财式开伴发数萝据访稠问每个网业务前对应霸的SQ液L处理予语句费,都潮有一抚个唯呀一的Co我mm铸an裕dN突am罢e,收沙录到框多个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小儿行走困难的临床护理
- 2025建筑合同常用英语句型
- 2025办公室租赁合同协议范本
- 2025集装箱活动房租赁合同范本
- 社会科学考试卷子及答案
- 山西五年级奥数试卷及答案
- 沙河二中考试卷子及答案
- 2025电大合同法精要速记版权威编排
- 2025【期权激励合同(张力律师)】股权期权激励合同
- 浙江国企招聘2025浙江青嘉建设有限公司(国有控股企业)招聘5人笔试参考题库附带答案详解
- 【人卫九版内分泌科】第十一章-甲状腺功能减退症课件
- “当代文化参与”学习任务群相关单元的设计思路与教学建议课件(共51张PPT)
- 提高卧床患者踝泵运动的执行率品管圈汇报书模板课件
- 同理心的应用教学教材课件
- DB4102-T 025-2021海绵城市建设施工与质量验收规范-(高清现行)
- 城市轨道交通安全管理隐患清单
- 锡膏使用记录表
- 儿童保健学课件:绪论
- 中小学校园安全稳定工作岗位责任清单
- 校园安全存在问题及对策
- NY∕T 309-1996 全国耕地类型区、耕地地力等级划分
评论
0/150
提交评论