IceRPC之多路复用传输>快乐的RPC
作者引言
很高兴啊,我们来到了IceRPC之多路复用传输>快乐的RPC,基础引导,打好基础,才能让自已不在迷茫,快乐的畅游世界。
icerpc 和多路复用传输
了解 icerpc 协议和多路复用传输
icerpc 协议
当创建到服务器地址 icerpc://hello.zeroc.com
的客户端连接时,指示 IceRPC 建立使用 icerpc 协议的连接。
icerpc 是一种应用层协议,通过多路复用连接传输 RPC(请求和响应)。
在讨论 icerpc 协议时,我们总是用小写拼写 icerpc。这避免了与 IceRPC 框架的混淆
多路复用传输
路复用传输页面,描述了在连接内提供独立流的现代传输的抽象。比如,典型的多路复用传输是QUIC 。
icerpc 连接在由多路复用传输,创建的多路复用连接,上运行。
icerpc 协议通过为每个请求 + 响应对创建专用双向流,通过多路复用连接发送请求和响应。它为每个单向请求创建单向流,因为单向请求没有响应。
由于每个流都是独立的,因此不存在队头阻塞。 可以通过同一连接发送大小请求和响应的组合:大请求和响应不会阻止,或延迟小请求和响应。
IceRPC 的首选协议
icerpc 自然是 IceRPC 的首选协议。
icerpc 提供了 IceRPC API 和功能的最直接实现。 特别是,IceRPC 的请求字段、响应字段和状态码按原样由 icerpc 传输。它还支持有效负载连续性。
icerpc 通过双工连接
目前只有一种标准复用传输: QUIC。 由于 QUIC 是新的且不普遍可用,因此可能需要将 icerpc 与传统的双工传输(例如 TCP)一起使用。
解决方案是 IceRPC 的 Slic 传输层。Slic 在双工传输抽象上实现复用传输抽象。
C# 中,默认的多路复用传输是 TCP 上的 Slic,称为 tcp
。以下语句都创建等效的 icerpc 连接。
// Create a client connection with the default multiplexed client transport, Slic over TCP.
using await var clientConnection = new ClientConnection("icerpc://hello.zeroc.com");
// Make sure we use Slic over TCP (correct but redundant).
using await var clientConnection = new ClientConnection("icerpc://hello.zeroc.com?transport=tcp");
// Create a new multiplexed client transport with default options.
var clientTransport = new SlicClientTransport(new TcpClientTransport());
using await var clientConnection = new ClientConnection(
"icerpc://hello.zeroc.com",
multiplexedClientTransport: clientTransport);
收尾
最近写的都是基础相关的概念,大家看看就行,以官方为主更为妙哉。
作者结语
- 一直做,不停做,才能提升速度
- 翻译的不好,请手下留情,谢谢
- 如果对我有点小兴趣,如可加我哦,一起探讨人生,探讨道的世界。
- 觉得还不错的话,点个赞哦
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· 深度对比:PostgreSQL 和 SQL Server 在统计信息维护中的关键差异