首页 > 其他分享 >.Net 8.0 下的新RPC,IceRPC之如何创建连接connection

.Net 8.0 下的新RPC,IceRPC之如何创建连接connection

时间:2024-05-05 10:22:37浏览次数:20  
标签:8.0 IceRPC 创建 connection 连接 服务端 客户端

作者引言

很高兴啊,我们来到了IceRPC之如何创建连接connection,基础引导,让自已不在迷茫,快乐的畅游世界。

如何创建连接connection

学习如何使用IceRPC,创建和接受连接。

连接有什么用途?

连接在 IceRPC 中发挥着核心作用: 通过连接向服务端发送请求,然后通过同一连接收到响应。 在此连接的另一端,IceRPC 接收此请求,将其交给服务端,然后发送回服务端返回的响应。

当应用程序创建与服务端的连接时,该连接就是"客户端连接"。当服务端接受客户端的连接时,该连接称为"服务端连接"。
一旦建立连接,客户端连接和服务端连接之间就没有区别。可以使用相同的API,在客户端连接或服务端连接上进行调用(发送请求并接收相应的响应)。任何连接,无论是客户端还是服务端,都可以接受传入的请求,并将这些请求发送到服务端。

创建客户端连接

C# 中,可以使用 ClientConnection 类或 ConnectionCache 类创建客户端连接。例如:

using IceRpc;

await using var clientConnection = new ClientConnection(new Uri("icerpc://hello.zeroc.com"));

ClientConnection 的构造函数指定了服务器的地址,但实际上并未建立连接。连接稍后通过异步调用(例如 ConnectAsyncInvokeAsync)建立:

// establishes the connection explicitly
await clientConnection.ConnectAsync();

客户端连接维护单个活动连接:连接到服务器的(客户端)连接。

连接缓存connection cache维护服务器地址到(客户端)连接的字典缓存。每个连接都连接到不同的服务器。连接缓存有助于定位和重用这些连接。

创建服务端

在服务端,接受与服务器Server类实例的服务端连接。该服务端监听并接受其配置的服务器地址上的新连接。

在 C# 中, 这又是两步过程, 首先构建一个服务器Server实例, 然后调用 Listen 方法:

using IceRpc;

// constructs and configures server
await using var server = new Server(...);

// starts listening for new connections
server.Listen();

服务端接受连接并记住它接受了哪些连接。服务端可以方便的关闭这些连接。

总结

虽然简短,但很重要,一个连接,创建万物互联,引起一个五彩斑斓的世界。

作者结语

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

标签:8.0,IceRPC,创建,connection,连接,服务端,客户端
From: https://www.cnblogs.com/xlgwr/p/18173254

相关文章

  • .Net 8.0 下的新RPC,IceRPC之使用Dev Containers进行 .NET QUIC 精简开发
    作者引言很高兴啊,我们来到了IceRPC之使用DevContainers进行.NETQUIC精简开发,主要是一篇指引,如何使用开发容器做为开发环境,进行开发IceRPC,可适用于任务应用的开发使用DevContainers进行.NETQUIC精简开发主要是引导大家,如何使用开发容器DevelopmentContainers,进行......
  • .Net 8.0 下的新RPC,IceRPC之"请求"生命线意义非凡
    作者引言很高兴啊,我们来到了IceRPC之"请求"生命线意义非凡,号称“死亡时间”的追命线,颤抖吧!"请求"生命线之意义非凡本文将深入探讨将截止时间纳入RPCs的重要性,以开发更强大的分布式应用程序。概述RPC(远程过程调用)系统中发送请求,通常会带来不确定性:无法保证,何时会收到回......
  • .Net 8.0 下的新RPC,IceRPC之试试的新玩法"打洞"
    作者引言很高兴啊,我们来到了IceRPC之试试的新玩法"打洞",让防火墙哭去吧试试RPCs的新玩法"打洞"比较典型的玩法:RPC数据流从客户端流向服务端,现在来尝试用IceRPC来玩一个新的花样"打洞"。概述对于IceRPC,客户端是发起连接的实体,而服务器是接受连接的实体。建立连接后,......
  • 全景剖析阿里云容器网络数据链路(七):Terway DataPath V2(Terway≥1.8.0)
    作者:余凯前言近几年,企业基础设施云原生化的趋势越来越强烈,从最开始的IaaS化到现在的微服务化,客户的颗粒度精细化和可观测性的需求更加强烈。容器网络为了满足客户更高性能和更高的密度,也一直在高速的发展和演进中,这必然对客户对云原生网络的可观测性带来了极高的门槛和挑战。为......
  • Aliyun服务器部署MySql 8.0
    Aliyun服务器部署MySql8.0一、安装MySQL复制相应版本;下载wget-i-chttps://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm1安装yum-yinstallmysql80-community-release-el8-1.noarch.rpm12、安装MySQL服务器安装命令(可以先执行下一步操作,再来......
  • MySQL8.0.22安装
    MySQL8.0.22安装及配置(超详细)大家好,今天我们来学习一下MySQL8.0.22安装及配置,好好看,好好学,超详细的第一步进入MySQL官网下载,如下图所示:第二步进入下载完成后解压到除c盘以外的盘,如下图所示:第三步解压后的目录并没有的my.ini文件,没关系可以自行创建在安装根目......
  • MySQL 5.7升级8.0过程(详解)
    记一次MySQL5.7升级8.0的详细过程,聊聊我的思路,希望可以帮助大家。以一个例子为切入点一、升级背景为什么要升级到MySQL8.0?大概多久进行一次?大家可以参考下图记录的各个版本的发布时间,来确认各个版本的最终补丁日期:  从上图来看,当前处在官方支持生命周期的版本是MySQL......
  • Ubuntu 16.04 LTS 升级到 Ubuntu 18.04 LTS
    Ubuntu从16.04升级到18.04版本_ubuntu16upgrade了18的库-CSDN博客......
  • kubernetes1.28.0配合apisix-ingress安装过程【1】
    环境介绍主机信息注意:由于资源有限,通过三台vmware虚拟机进行安装。主机名IP操作系统配置k8s-master192.168.199.101Centos7.92CPU、4G内存、100G磁盘k8s-node01192.168.199.102Centos7.92CPU、4G内存、100G磁盘k8s-node02192.168.199.103Centos7......
  • linux centos7 3.10+安装mysql8.0.36
    目录网络源linux操作先搜索有没有安装低版本的mysql5.7或者和mysql冲突的mariadb卸载冲突软件一定要卸载,否则会导致安装mysql失败安装mysql的依赖包,wget,解压源码包时所用的依赖库增加一个mysql的user解压源码包到当前目录给mysql改一个简单的名字编辑/etc下的mysql配置文件my.cnf......