服务线程说明文档

    我们观察一个运行中的TAF框架服务,看下每个线程的特征,并对各个线程功能做下区分。

    实验场景:

    按照上节所述的线程启动策略,这种场景下这个服务应该有:

    7(固定数)+ 1(服务端网络线程数目) + 5(业务处理线程数目)+ 2(客户端网络线程数目) + 2(异步回调线程数目)* 2(客户端网络线程数目) = 19个线程。

    上面看到了一个标准的Tars C++服务是如何组成的,凡是表明线程数目为1的部分是框架内部实现的,用户不能改变数目。

    能改变的就是服务端网络线程、业务逻辑处理线程、客户端网络线程、异步回调处理线程。

    改变业务逻辑处理线程数据,可以在Tars管理平台配置Servant对象时,在“线程数”输入自己想要的线程,那么框架将会为本Servant启动相应的线程数。

    如果服务拥有两个Servant对象,分别属于不同的线程组,计算线程数目时,我们只需将不同Servant对象的线程数简单相加即可。

    可如果设置了线程组,那么计算方法就有所不同了。

    比如:

    ServantA 属于线程组HandleGroupA,启动线程数为10

    ServantB和ServantC 属于线程组HandleGroupBC,启动线程数为10

    4.2. 改变服务端网络线程、客户端网络线程、异步回调处理线程的方法

    如果要改变服务端网络线程、客户端网络线程、异步回调线程数目,可以在模版上修改,或者增加对应的服务私有模版。