已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设计高性能的 WCF解决方案 Mauro Ottaviani 资深软件开发主管 微软公司 回报 传输层,序列化器,及编码器 客户端的选项 服务端的选项 流传输 通常的建议 与下列.NET技术具有可比性 .NET Remoting System.EnterpriseServices System.Messaging /en-us/library/bb310550.aspx 速度比以下网络服务更快 ASMX(ASP.NET网络服务) WSE 性能优于其它同类技术 /en- us/netframework/bb499684.aspx 回报 传输层,序列化器,及编码器 客户端的选项 服务端的选项 流传输 通常的建议 WCF默认支持多种传输层 TCP, HTTP, MSMQ, NamedPipes 可以自定义其它传输层 每一种传输层各有不同的考虑因素 消息传输模式,可接受客户端的多寡,互操作性,开销 消息类型 = XML Infoset 序列化器是对象图与Infosets之间的桥梁 WCF自带了三种序列化器 DataContractSerializer (DCS) NetDataContractSerializer (NDCS) XmlSerializer 可应互操作性的要求使用相应的序列化器 编码器是Infoset与报文格式之间的桥梁 WCF自带了三种编码器(.NET框架3.0) 文本,MTOM,二进制 .NET框架3.5引入了JSON编码器 通常应互操作性的要求来决定使用何种编码器 二进制编码速度快,但不具备互操作性 MTOM用于大量的二进制数据,同时具备互操作性 文本编码则可满足大部分互操作性的要求 二进制编码显著快于文本编码 可同时提供一个可互操作的端点和一个不可互操作的端点 MTOM与二进制编码相近 消息越大,编码器对性能的影响也越大 协议本身的开销与实际吞吐量相比可以忽略不计 消息越小,编码器对性能的影响也越小 大部分时间耗费在协议本身 序列化器与编码器 葛子昂 软件设计工程师 微软中国研发集团 回报 传输层,序列化器,及编码器 客户端的选项 服务端的选项 流传输 通常的建议 Svcutil.exe可以为服务创建一个代理类型 该类型实现了IClientChannel 实例化该类型需要额外的开销 还可以使用ChannelFactory 应该使用哪一个? Svcutil.exe创建的类型易于使用,但开销较大 ChannelFactory不易使用,但开销较小 经常被误用! 销毁不用的代理 会达到阈值:可能会导致客户端挂起 会耗尽资源:如套接字 不要在每次调用时都创建一个新的代理 如果信道是有状态的,那么可以重复使用ChannelFactory “Increasing Middle-Tier Client Performance” /en-us/library/aa738757.aspx 如果进行缓存,那么还要考虑对伸缩性的影响 异步,异步,异步! 客户端的使用 葛子昂 软件设计工程师 微软中国研发集团 回报 传输层,序列化器,及编码器 客户端的选项 服务端的选项 流传输 通常的建议 服务是异步的 不要浪费CPU资源 ServiceModel做了一些保守的限制 MaxConcurrentSessions = 10 MaxConcurrentCalls = 16 InstanceContext被设定为PerCall 考虑同步的开销 绑定指定了闲置超时 ReceiveTimeout:可防御客户端不及时关闭连接 服务务的使用 葛子昂 软件设计工程师 微软中国研发集团 回报 传输层,序列化器,及编码器 客户端的选项 服务端的选项 流传输 通常的建议 大型数据的传输 经验法则:当数据量大于1M时考虑使用流 只能用于HTTP,TCP和NamedPipe传输层 既可传入服务,也可从服务中传出,或双向 设定绑定的TransferMode.Streamed 在契约中使用System.IO.Stream 设定MaxReceivedMessageSize 默认设定为64k Windows和WCF会对内容进行缓存 即便是流传输的情况下也是如此 WCF提供了用Nagle算法来控制缓存的支持 ConnectionBufferSize 指定本地缓存的大小 MaxOutputDelay 在本地缓存数据的最长时间 AllowOutputBatching 在WCF内部启用批处理 流传输 葛子昂 软件设计工程师 微软中国研发集团 回报 传输层,序列化器,及编码器 客户端的选项 服务端的选项 流传输 通常的建议 不销毁无用的代理 每次调用都创建一个新的代理 在没有必要的时候启用安全性(Web) NetTcp/NetPipe/WSHttp默认情况下开启 使用ServerThrottle的默认设定 MaxConcurrentSessions = 10 MaxConcurrentCalls = 16 契约中使用了流传输,而绑定中却仍然使用缓存 必要时采用流传输:内存的使用,较大的负荷 负荷较小时采用缓存更快 SvcConfigEditor:可方便地显示所有设定 SvcTraceViewer:对追踪数据进行诊断 性能计数器 Visual Studio Team Suite中的性能工具 Netmon:可分析线上的数据及其行为 3.1版已开放下载/netmon ETW (Xperf) /en-us/library/aa363668.aspx /events/storage- developer2007/presentations/BWorthington_Capturing_ Comprehensive_Storage_Workload.pdf 不要猜想:测量! 实际负荷具有很大的影响 部署会造成很大的差异 其它应用程序争夺资源 网络拓朴可能导致延迟 安全性(活动目录,x509 & CRLs) 对主要的用户场景从头至尾进行测量 若只对场景的某一部分进行测量,则一定要谨慎 传输层 NetPipe, NetTcp, BasicHttp, WSHttp 代理 重用ServiceChannel,重用ChannelFactory. 安全性 传输层,WS-* +MessageCredentials,完全WS-* 编码器 文本编码,MTOM,二进制编码,JSON 压缩编码,非WCF自带(GZipStream) 运行方式 自主运行,在IIS内运行 在Vista/2008 Server下,IIS7内运行时可支持NetTcp/NetPipe 限额/阈值 在提高限额/阈值的同时,使其保持尽可能地小 实例化/并发 Singleton/Multiple 事务 OleTx, WS-AT 队列 使用批处理 答惑解疑 A Performance Comparison of Windows Communication Foundation (WCF) with Existing Distributed Communication Technologies /en-us/library/bb310550.aspx Increasing Middle-Tier Client Performance /en-us/library/aa738757.aspx Netmon 3.0 .NET StockTrader Sample Application /en-us/netframework/bb499684.aspx ETW (Xperf) /en-us/library/aa363668.aspx /events/storage- developer2007/presentations/BWorthington_Capturing_Comprehensive_Storage_Workload. pdf 感谢您参与此会场!感谢您参与此会场! 您的意见与建议对我们非常重要您的意见与建议对我们非常重要 。请您填写反馈表。请您填写反馈表。 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsof
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46465-2025中文电子邮件地址邮局协议(POP)技术要求
- 2025年绿色建筑材料研究与开发可行性研究报告及总结分析
- 2025年线上健身服务平台开发项目可行性研究报告及总结分析
- 2023年医师三基三严理论知识模拟复习试题及答案二
- 2025年企业团建活动场地合同
- 2020-2025年中级银行从业资格之中级银行管理押题练习试卷A卷附答案
- 2020-2025年监理工程师之土木建筑监理案例分析题库综合试卷A卷附答案
- 2025年山西长治市襄垣县保安员招聘考试题库附答案解析
- 2025年绿色食品研发项目可行性研究报告及总结分析
- 2025年农业项目开发合同协议
- 药剂证书考试题库及答案
- 雨课堂学堂云在线《医患沟通与调适(广州医大 )》单元测试考核答案
- 广东深圳市坪山区委宣传部下属事业单位招聘工作人员(共500题含答案解析)笔试历年难、易错考点试题含答案附详解
- 肿瘤科降低输液外渗发生率品管圈PDCA成果汇报
- 普通地质学教材
- 2022年湖北省药品监督管理局审评中心招聘笔试备考题库及答案解析
- 小区游泳池经营承包合同
- 离职手续委托书范本
- HY/T 0330-2022海滩养护与修复工程验收技术方法
- 医疗卫生事业单位结构化面试题打印
- 第11章-量子力学基础
评论
0/150
提交评论