当前位置 : 主页 > 大数据 > 区块链 >

在WCF服务中使用protobuf

来源:互联网 收集:自由互联 发布时间:2021-06-22
我的asp.net网页在IIS Web服务器上,它使用基本的HTTP绑定与WCF服务(坐在Windows 2008应用服务器上)进行通信。 我的wcf服务的性能似乎不是很好,我想改进一样。另外,我需要平衡可扩展性,
我的asp.net网页在IIS Web服务器上,它使用基本的HTTP绑定与WCF服务(坐在Windows 2008应用服务器上)进行通信。
我的wcf服务的性能似乎不是很好,我想改进一样。另外,我需要平衡可扩展性,因为我的网站流量很高。

HTTP压缩,限制是一些我知道的方式,但还没有尝试过。
我可以使用protobuf API …请建议…

简短的答案是“是”…

协议缓冲区规范本身不提供RPC堆栈,但有些已经添加到规范之外。

首先,protobuf-net具有WCF挂钩,允许您将服务合同的操作标记为ProtoBehavior.然后将常规DataContractSerializer交换为使用protobuf-net序列化。但是,有一些注意事项:

>您的数据成员必须具有显式顺序(例如[ProtoMember(Order = 1)]),因为它使用这些数字作为字段标识符(协议缓冲区使用数字字段)
>它最适合于汇编/类共享(服务合同等),因为这种自定义行为没有暴露在“mex”

当与基本http传输一起使用时,这也与MTOM兼容(如果启用)以获得最大吞吐量。不平凡信息的表现与其大小成正比;您可以了解到protobuf-net的大小here。

或者,我也在定制RPC堆栈。 current build有一个工作堆栈http,但我也打算在原始TCP / IP上启用它,当我有机会。我还没有机会写下来,但我可以根据要求提供示例。请注意,为了方便使用,您还需要3.5“扩展名”dll。

任何问题,添加评论或发邮件给我(见我的个人资料)。

网友评论