如何详细实现高吞吐量下使用XRPC调用.net core远程方法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1124个文字,预计阅读时间需要5分钟。
前言:XRPC的目标非常明确,就是为.net core平台实现一个百万级别的远程方法调用RPC通信组件。
它的设计理念与GRPC类似,基于连接复用的机制实现高性能。XRPC采用了HTTP2复用的思想,以实现高效的网络通信。
前言
XRPC的目标非常明确,就是给.net core平台实现一个百万级别的远程方法调用RPC通讯组件。它的设计理念和GRPC一样,基于连接复用的机制实现高吞的性能;XRPC采用了HTTP2复用的思想,在协议设计上也类似文本和二进制相结合;在应用层面并没使用消息而是基于接口代理的方式让使用更简便。
协议序列化
XRPC采用了基于文本+二进制相结合的通讯协议,头以文本的方式表现主要是描述请求的位置和附加信息,这样设计的好处就是在实现网关的时候只需要解释头部就能做很好的负载策略。二进制处理并没有像GPRC一样使 Protobuf,而是使用了在.net core平台下相对更高效的组件MessagePack。
通讯机制
在早期很多RPC是基于独享连和连接池的方式进行构建,这样的好处就是实现起来方便简单,但这种设计就无法把不同请求的请求混合到一个IO上。导致网络IO随并发消息的增长而增长,从而局限了性能的发挥。
本文共计1124个文字,预计阅读时间需要5分钟。
前言:XRPC的目标非常明确,就是为.net core平台实现一个百万级别的远程方法调用RPC通信组件。
它的设计理念与GRPC类似,基于连接复用的机制实现高性能。XRPC采用了HTTP2复用的思想,以实现高效的网络通信。
前言
XRPC的目标非常明确,就是给.net core平台实现一个百万级别的远程方法调用RPC通讯组件。它的设计理念和GRPC一样,基于连接复用的机制实现高吞的性能;XRPC采用了HTTP2复用的思想,在协议设计上也类似文本和二进制相结合;在应用层面并没使用消息而是基于接口代理的方式让使用更简便。
协议序列化
XRPC采用了基于文本+二进制相结合的通讯协议,头以文本的方式表现主要是描述请求的位置和附加信息,这样设计的好处就是在实现网关的时候只需要解释头部就能做很好的负载策略。二进制处理并没有像GPRC一样使 Protobuf,而是使用了在.net core平台下相对更高效的组件MessagePack。
通讯机制
在早期很多RPC是基于独享连和连接池的方式进行构建,这样的好处就是实现起来方便简单,但这种设计就无法把不同请求的请求混合到一个IO上。导致网络IO随并发消息的增长而增长,从而局限了性能的发挥。

