首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Myicefrog的文章

Myicefrog的文章

作者头像
bert
修改2019-02-22 15:55:12
3120
修改2019-02-22 15:55:12
举报
文章被收录于专栏:ananas-rpcananas-rpc

原文:https://cloud.tencent.com/developer/article/1394336

很赞;

客户端侧比较复杂一些,涉及到这样的流程:

1.查找本地service stub,内存查找,很容易,即RGetServiceStub的调用;

stub对象是远程service在本地的一个抽象,它封装了连接管理,负载均衡,甚至名字查找等功能,对外透明;

2. 远端service可能部署了多个服务进程节点;service stub最终会连接上每一个节点并维护连接,一条连接是个Channel对象,这一步的目标是要选择一个channel发送请求;即GetChannel调用;

该过程较为复杂,如果还没有服务端地址列表,那么需要访问名字服务查询,一个异步的过程;如果有地址列表,但可能还没有建立tcp连接,那么要connect又是一个异步过程,所里这里用了不少future把这些异步操作串联起来了。

3.获取channel后,就可以调用invoke发送rpc消息了;涉及到消息发送以及请求上下文保存,并返回一个future;这个future就是Call返回的了,可以在上面注册callback,以处理收到的rpc响应。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档