在WCF服务中使用protobuf
我的asp.net网页位于IIS web服务器上,它使用基本HTTP绑定与WCF服务(位于windows 2008 app server上)通信。 我的wcf服务的性能似乎不太好,我想提高同样的性能。此外,我需要在可伸缩性上取得平衡,因为我的网站将有非常高的流量 HTTP压缩、节流是我知道但尚未尝试过的一些方法。。 我可以使用API…请建议…请参阅 protobuf net是这个的.net实现,允许您 高效轻松地序列化.NET对象。它是兼容的 对于大多数.NET系列,包括.NET 2.0/3.0/3.5,.NET CF 2.0/3.5、Mono 2.x、Silverlight 2等在WCF服务中使用protobuf,wcf,web-services,wcf-binding,Wcf,Web Services,Wcf Binding,我的asp.net网页位于IIS web服务器上,它使用基本HTTP绑定与WCF服务(位于windows 2008 app server上)通信。 我的wcf服务的性能似乎不太好,我想提高同样的性能。此外,我需要在可伸缩性上取得平衡,因为我的网站将有非常高的流量 HTTP压缩、节流是我知道但尚未尝试过的一些方法。。 我可以使用API…请建议…请参阅 protobuf net是这个的.net实现,允许您 高效轻松地序列化.NET对象。它是兼容的 对于大多数.NET系列,包括.NET 2.0/3.0
如果WCF服务不需要暴露在内部网络之外,您还可以考虑使用基于TCP的绑定。简短的回答是“是” ProtocolBuffers规范本身不提供RPC堆栈,但在规范之外添加了一些 首先,它有WCF的钩子,允许您将服务合同上的操作标记为。然后交换常规的
DataContractSerializer
,以使用protobuf网络序列化。但是,有一些警告:
- 数据成员必须具有明确的顺序(例如,
),因为它使用这些数字作为字段标识符(协议缓冲区使用数字字段)[ProtoMember(Order=1)]
- 它最适合于程序集/类共享(服务契约等),因为这种自定义行为不会在“mex”上公开
如有任何问题,请添加评论或发电子邮件给我(请参阅我的个人资料)。谢谢您的回答……我是否可以知道您是否已经使用protobuf以及性能改进的程度?实际上,该库的作者Marc在StackOverflow的某个地方。我会给他发电子邮件,并给他指出一个问题:)澄清一下,我只是《protobuf网络》的作者;“协议缓冲区”是谷歌一些非常聪明的人的功劳。如果消息是原始数据类型呢?它仍然会取代行为吗?例如,如果返回双数组,是否将其作为序列化字节发送?在这种情况下,您需要程序集共享吗?另外,您是说它与程序集共享配合使用效果最好。那么,如果客户机不知道PortoMember顺序,它会如何表现呢?