tars-源码分析-服务端

本文详细分析了TARS框架服务端的代码,包括Application、TC_EpollServer、ServantHelperManager等主要类的职责,以及服务器初始化流程,如配置解析、客户端和服务端初始化、bindAdapter的创建等。此外,还探讨了驱动模型,如Accept、C2S和S2C的调用流程,揭示了TARS服务端如何处理网络通信和协议解析。
摘要由CSDN通过智能技术生成

server端代码分析

项目地址-作者lowkey

主要类简介

  • Application

    • 我们实现的helloServer需要继承自这个类。主要承载配置的解析、epollser的初始化、消息的处理和分发、servant的创建和管理。
    • 其中最主要的两个成员: EpollServer、ServantHelperManager
  • TC_EpollServer

    • 接收新的连接
    • 负载所有io
    • 消息分发到servant
  • ServantHelperManager

    • helloServer初始化的时候会通过addServant添加特例话的helloServant。servantHelper的主要工作就是提供create接口方便创建helloServant实例。ServantHelperManager就是通过ServantName管理这些ServantHelper。
  • BindAdapter

    • 监听适配器。每个bindAdaper对应一个监听的端口,并且维护一个消息队列。用于支撑不同的端口不同的协议。
    • 提供Handler的初始化能力。
  • NetThread

    • 承载分配到本线程的connection的io。内部依靠epoller来驱动。所谓的one sthread one looper。
  • Connection

    • 维护连接的属性,是udp还是tcp
  • TC_Transceiver

    • 处理数据的收发和socket的链接,这样可以排除平台的差异。具体的协议协议介系需要通过回调支持。
  • Handle

    • 负责对消息的处理,分发到不同的servatn。servant在分发到不同的method。

初始化流程

  • application初始化

    • 配置解析::parseConfig

      这里没什么需要特别说明的,就是从服务器的配置文件中解析配置。初始化单利配置实例,并进行托管。

    • 客户端部分初始化::initializeClient

      由于我们的服务节点需要同nodeServer进行通信,回报自己的状态。所以,需要初始化客户端部分,也就是Communicator(详情见tars源码分析-客户端部分)。

    • 服务器部分初始化::initializeServer

      • 初始
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值