【TARS】TARS-CPP客户端学习一

TARS客户端的核心是Communicator类,它管理网络线程和对象代理,通过ServantProxyFactory生成服务代理ServantProxy进行RPC调用。CommunicatorEpoll处理网络I/O,ObjectProxyFactory生成服务实体ObjectProxy,协同AdapterProxy管理服务连接。异步回调由AsyncProcThread处理,而TC_CasQueue和ReqMessage则涉及请求队列管理。
部署运行你感兴趣的模型镜像

目录

 

0.入门学习链接

1.客户端中涉及的类的介绍

1.1 TarsClient(客户端类)

1.2 Communicator(通信器类)

1.3 ServantProxyFactory&ServantProxy(服务代理工厂类和服务代理类)

1.4 CommunicatorEpoll(客户端网络处理的线程类)

1.5 ObjectProxyFactory&ObjectProxy(服务实体工厂类和服务实体类) 

1.6 TC_Epoller(epoller操作类)

1.7 EndpointManager(框架内部的路由管理的实现类)

1.8 QueryEpBase(路由请求与回调的实现类)

1.9 AdapterProxy类

1.10 Transceiver(网络传输基类, 主要提供send/recv接口)

1.11 AsyncProcThread(异步回调后的处理线程)

1.12  TC_CasQueue(线程安全队列,是类模板)

1.13 ReqMessage(请求队列类)

2. 初识客户端

2.1 总览

2.2 Communicator

2.3 ServantProxy与ServantProxyFactory

2.4 CommunicatorEpoll

2.5 ObjectProxy与ObjectProxyFactory

2.6 客户端初始化时重要类之间的关联关系


0.入门学习链接

TARS基金会-微服务开源框架TARS的RPC源码解析之初识TARS-C++客户端

tars客户端(一):一次rpc的调用过程--写的很好

1.客户端中涉及的类的介绍

1.1 TarsClient(客户端类)

 

1.2 Communicator(通信器类)

1.3 ServantProxyFactory&ServantProxy(服务代理工厂类和服务代理类)

1.4 CommunicatorEpoll(客户端网络处理的线程类)

1.5 ObjectProxyFactory&ObjectProxy(服务实体工厂类和服务实体类) 

1.6 TC_Epoller(epoller操作类)

1.7 EndpointManager(框架内部的路由管理的实现类)

1.8 QueryEpBase(路由请求与回调的实现类)

1.9 AdapterProxy类

1.10 Transceiver(网络传输基类, 主要提供send/recv接口)

1.11 AsyncProcThread(异步回调后的处理线程)

1.12  TC_CasQueue(线程安全队列,是类模板)

1.13 ReqMessage(请求队列类)

 

2. 初识客户端

2.1 总览

TARS的客户端最重要的类是Communicator,一个客户端只能声明出一个Communicator类实例,用户可以通过
CommunicatorPtr& Application::getCommunicator()获取线程安全的Communicator类单例。Communicator
类聚合了两个比较重要的类,一个是CommunicatorEpoll,负责网络线程的建立与通过ObjectProxyFactory生
成ObjectProxy;另一个是ServantProxyFactory,生成不同的RPC服务句柄,即ServantProxy,用户通过
ServantProxy调用RPC服务。下面简单介绍几个类的作用。

2.2 Communicator

一个Communicator实例就是一个客户端,负责与服务端建立连接,生成RPC服务句柄,可以通过
CommunicatorPtr& Application::getCommunicator()获取Communicator实例,用户最后不
要自己声明定义新的Communicator实例.

2.3 ServantProxy与ServantProxyFactory

ServantProxy就是一个服务代理,ServantProxy可以通过ServantProxyFactory工厂类生成,用户往往通过
Communicator的template void stringToProxy()接口间接调用ServantProxyFactory的
ServantPrx::element_type* getServantProxy()接口以获取服务代理,通过服务代理ServantProxy,用户
就可以进行RPC调用了. ServantProxy内含多个服务实体ObjectProxy(详见下文第4小点), 能够帮助用户在
同一个服务代理内进行负载均衡.

2.4 CommunicatorEpoll

CommunicatorEpoll类代表客户端的网络模块,内含TC_Epoller作为IO复用,能够同时处理不同主调线程
(caller线程)的多个请求。CommunicatorEpoll内含服务实体工厂类ObjectProxyFactory(详见下文),
意味着在同一网络线程中,能够产生不同服务的实体,能够完成不同的RPC服务调用。CommunicatorEpoll还聚
合了异步调用处理线程AsyncProcThread,负责接收到异步的响应包之后,将响应包交给该线程处理.

2.5 ObjectProxy与ObjectProxyFactory

ObjectProxy类是一个服务实体,注意与ServantProxy类是一个服务代理相区别,前者表示一个网络线程上的某
个服务实体A,后者表示对所有网络线程上的某服务实体A的总代理,更详细的介绍可见下文。ObjectProxy通过
ObjectProxyFactory生成,而ObjectProxyFactory类的实例是CommunicatorEpoll的成员变量,意味着一个
网络线程CommunicatorEpoll能够产生各种各样的服务实体ObjectProxy,发起不同的RPC服务. ObjectProxy
通过AdapterProxy来管理对服务端的连接。

2.6 客户端初始化时重要类之间的关联关系

 

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值