IceRPC之多路复用传输>快乐的RPC

icerpc,rpc · 浏览次数 : 0

小编点评

**作者引言** 作者在介绍 IceRPC 之多路复用传输的基础知识时,详细解释了 icerpc 和多路复用传输之间的区别。作者还介绍了 icerpc 的首选协议 icerpc 和 Slic 传输层,以及它们如何为 RPC 连接提供复用传输。 **主要内容** * **icerpc 协议**是一种应用层协议,通过多路复用连接传输 RPC 请求和响应。 * **多路复用传输**是一种在多个连接上发送请求和响应的技术。 * **Slic 传输层**是一种用于实现复用传输的抽象层。 * **icerpc 的首选协议 icerpc** 提供了 IceRPC 的最直接实现。 * **Slic 传输层**可以为 icerpc 连接提供复用传输。 **结论** 作者强调了 icerpc 之多路复用传输的优势,并介绍了 Slic 传输层如何为 RPC 连接提供复用传输。作者还强调了 icerpc 的首选协议 icerpc 和 Slic 传输层的重要性。

正文

作者引言

很高兴啊,我们来到了IceRPC之多路复用传输>快乐的RPC,基础引导,打好基础,才能让自已不在迷茫,快乐的畅游世界。

icerpc 和多路复用传输

了解 icerpc 协议和多路复用传输

icerpc 协议

当创建到服务器地址 icerpc://hello.zeroc.com 的客户端连接时,指示 IceRPC 建立使用 icerpc 协议的连接。

icerpc 是一种应用层协议,通过多路复用连接传输 RPC(请求和响应)。

在讨论 icerpc 协议时,我们总是用小写拼写 icerpc。这避免了与 IceRPC 框架的混淆

多路复用传输

路复用传输页面,描述了在连接内提供独立流的现代传输的抽象。比如,典型的多路复用传输是QUIC

icerpc 连接在由多路复用传输,创建的多路复用连接,上运行。

--- title: icerpc over quic --- classDiagram class IceRpcConnection class MultiplexedConnection { <<abstraction>> } class QuicConnection IceRpcConnection o-- MultiplexedConnection MultiplexedConnection <|-- QuicConnection

icerpc 协议通过为每个请求 + 响应对创建专用双向流,通过多路复用连接发送请求和响应。它为每个单向请求创建单向流,因为单向请求没有响应。

--- title: RPCs mapped to streams by icerpc --- flowchart LR subgraph Client [icerpc client connection] end subgraph Server [icerpc server connection] end subgraph stream0 [stream] s0["> request >\n < response <"] end subgraph stream1 [stream] s1["< request <\n > response >"] end subgraph stream2 [stream] s2["> one-way request >"] end subgraph stream3 [stream] s3["> request >\n < response <"] end subgraph stream4 [stream] s4["< one-way request <"] end Client --- s0 Client --- s1 Client --- s2 Client --- s3 Client --- s4 s0 --- Server s1 --- Server s2 --- Server s3 --- Server s4 --- Server

由于每个流都是独立的,因此不存在队头阻塞。 可以通过同一连接发送大小请求和响应的组合:大请求和响应不会阻止,或延迟小请求和响应。

IceRPC 的首选协议

icerpc 自然是 IceRPC 的首选协议。

icerpc 提供了 IceRPC API 和功能的最直接实现。 特别是,IceRPC 的请求字段、响应字段和状态码按原样由 icerpc 传输。它还支持有效负载连续性。

icerpc 通过双工连接

目前只有一种标准复用传输: QUIC。 由于 QUIC 是新的且不普遍可用,因此可能需要将 icerpc 与传统的双工传输(例如 TCP)一起使用。

解决方案是 IceRPC 的 Slic 传输层。Slic 在双工传输抽象上实现复用传输抽象。

--- title: icerpc over tcp --- classDiagram class IceRpcConnection class MultiplexedConnection { <<abstraction>> } class SlicConnection class DuplexConnection { <<abstraction>> } class TcpConnection IceRpcConnection o-- MultiplexedConnection MultiplexedConnection <|-- SlicConnection SlicConnection o-- DuplexConnection DuplexConnection <|-- TcpConnection

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);

收尾

最近写的都是基础相关的概念,大家看看就行,还以官方为主。

作者结语

  • 一直做,不停做,才能提升速度
  • 翻译的不好,请手下留情,谢谢
  • 如果对我有点小兴趣,如可加我哦,一起探讨人生,探讨道的世界
  • 觉得还不错的话,点个
    image

与IceRPC之多路复用传输>快乐的RPC相似的内容:

IceRPC之多路复用传输>快乐的RPC

作者引言 很高兴啊,我们来到了IceRPC之多路复用传输>快乐的RPC,基础引导,打好基础,才能让自已不在迷茫,快乐的畅游世界。 icerpc 和多路复用传输 了解 icerpc 协议和多路复用传输 icerpc 协议 当创建到服务器地址 icerpc://hello.zeroc.com 的客户端连

IceRPC之依赖注入>快乐的RPC

作者引言 很高兴啊,我们来到了IceRPC之依赖注入>快乐的RPC,基础引导,打好基础,才能让自已不在迷茫,快乐的畅游世界。 依赖注入和IceRPC 了解 IceRPC (C#) 如何为依赖注入(DI)提供支持。 DI作为可选功能 DI的第一条规则是:不要引入对DI的依赖。 IceRPC (C#)

IceRPC之深入理解调度管道->快乐的RPC

作者引言 很高兴啊,我们来到了IceRPC之深入理解调度管道->快乐的RPC,为上篇的续篇,深入理解常见的调度类型, 基础引导,有点小压力,打好基础,才能让自已不在迷茫,快乐的畅游世界。 传入请求 了解如何处理传入的请求 接收传入的请求 调度器的调度方法接受传入的请求。该传入请求是由连接,在收到来自

IceRPC之调度管道->快乐的RPC

作者引言 很高兴啊,我们来到了IceRPC之调度管道->快乐的RPC, 基础引导,有点小压力,打好基础,才能让自已不在迷茫,快乐的畅游世界。 调度管道 Dispatch pipeline 了解如何接受请求并返回响应。 定义 接受/完成请求,并返回响应的过程称为调度。 调度通常由服务器连接创建: 服务

IceRPC之传入响应和拦截器

# 作者结语 * **一直做,不停做**,才能提升速度 * 翻译的不好,请手下**留情**,谢谢 * 如果对我有点小兴趣,如可加我哦,一起探讨人生,探讨**道的世界**。 * 觉得还不错的话,点个赞哦 ![image](https://img2024.cnblogs.com/blog/127234/...

IceRPC之调用管道Invocation pipeline与传出请求Outgoing request->快乐的RPC

作者引言 .Net 8.0 下的新RPC 很高兴啊,我们来到了IceRPC之调用管道 Invocation pipeline与传出请求 Outgoing request->快乐的RPC, 基础引导,让自已不在迷茫,快乐的畅游世界。 调用管道 Invocation pipeline 了解如何发送请求r

IceRPC之服务器地址与TLS的安全性->快乐的RPC

作者引言 .Net 8.0 下的新RPC 很高兴啊,我们来到了IceRPC之服务器地址与TLS的安全性->快乐的RPC, 基础引导,让自已不在迷茫,快乐的畅游世界。 服务器地址 ServerAddress 了解服务器地址的概念和语法。 语法 服务器地址URI具有以下语法: protocol://ho