摘要: 具体细节后续再补 阅读全文
posted @ 2020-01-15 19:52 掉头发的666 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 对于业务服务而言。 业务服务在框架中是被管理角色,它必须满足两点,才能框架被框架认为运行中的服务: 1、可被框架找到,所以要在NodeServer的ServerFactory中必须有正确的ServerObject相关信息,可以通过application+serverName找到对应信息,并且该信息被 阅读全文
posted @ 2020-01-15 19:38 掉头发的666 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 后续再补细节 阅读全文
posted @ 2020-01-15 19:37 掉头发的666 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 后续有空再补细节 阅读全文
posted @ 2020-01-15 19:36 掉头发的666 阅读(153) 评论(0) 推荐(0) 编辑
摘要: LogServer 日志服务 这个好像没啥可看的。 值得介绍的就是 日志文件会在哪生成。 指定业务服务的日志文件会在 /tars/log<logpath> 配置处。。官方给的模板配置文件中是 /usr/local/app/tars/remote_app_log。。这个路径。 这个目录下的: sLog 阅读全文
posted @ 2020-01-15 19:35 掉头发的666 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 这两服务都类似。功能写法都类似。看名字就知道是跟PropertyServer,StatServer搭配使用的 这两服务不是tars协议服务。所以要看非tars协议应该怎么写,可参考此服务。 看代码。实现的是 JsonProtocol 协议服务。通过RequestDecoder 解包 详细,有空再补吧 阅读全文
posted @ 2020-01-15 19:32 掉头发的666 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 这两服务都是上报统计服务。。写法功能,代码逻辑都是类似。 下面是PropertyServer的介绍 此服务,应该性能瓶颈在db。所以采取的策略是,把上报的数据,放在内存缓存中。后面再异步批量写入db而且是分多个db。 为了尽量挖掘性能,在内存中,有着一组 继承于TarsHashMap的 hashMa 阅读全文
posted @ 2020-01-15 19:31 掉头发的666 阅读(309) 评论(0) 推荐(0) 编辑
摘要: _maxPageSize /tars/hash<max_page_size> 配置中默认是29 _maxPageNum /tars/hash<max_page_num> 配置中默认是30 过滤条件。配在 /tars/filter中 NotifyF.tars 接口实现 reportServer 框架上 阅读全文
posted @ 2020-01-15 19:28 掉头发的666 阅读(335) 评论(0) 推荐(0) 编辑
摘要: NodeServer的Node.tar部分功能流程 isValid(sIP) 判断指定的sIP是否有效 一个很重要的函数,1分钟内新增一次有效ip列表(为啥设计成新增而不是更新模式?)。这里可认为是有效的ip有3种: NodeServer当前节点的ip; 配置在/tars/node<cmd_whit 阅读全文
posted @ 2020-01-15 19:27 掉头发的666 阅读(1132) 评论(0) 推荐(0) 编辑
摘要: 1、分控的主配置如下: 服务状态更新频率 是在<reap>段 的配置内。 <reap> #加载object间隔时间(s) loadObjectsInterval = 30 #轮询server状态的间隔时间(s) queryInterval = 150 #第一阶段加载时间间隔,单位是秒 loadObj 阅读全文
posted @ 2020-01-15 19:25 掉头发的666 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 1、服务状态更新频率 是在<reap>段 的配置内。 <reap> #服务心跳更新时间(s) 此值在代码里有最小保护为5s 配置小于5s时 自动设置成5s updateHeartInterval=15 #主控心跳超时检测时间,单位是秒..代码最小值保护为5s registryTimeout=150 阅读全文
posted @ 2020-01-15 19:24 掉头发的666 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 本部分 前接《服务端各种关键类简洁》。 初始化流程: 在Application::main中 给_epollServer绑定完Adapter和setHandle之后,会执行,start全部Handle线程;给每个网络线程单独 createEpoll().. 在createEpoll中会: 1、创建 阅读全文
posted @ 2020-01-15 19:21 掉头发的666 阅读(715) 评论(0) 推荐(0) 编辑
摘要: Servant类。 翻译成中文就是 仆人的意思。顾名思义,是真正干活的类 在我们实际上写tars代码时候,一般先定义好一个tars文件。比如tars源码的cpp/examples/CoroutineDemo/BServer.这个工程来说.有个BServant.tars文件。内容如下 module T 阅读全文
posted @ 2020-01-15 19:14 掉头发的666 阅读(875) 评论(0) 推荐(0) 编辑
摘要: ServantProxy类 很有意思的是,服务端的实现叫Servant,对应客户端连接器的名就叫ServantProxy,顾名思义,是客户端连接的代理. selectNetThreadInfo的实现: 1获取ServantProxyThreadData pSptd; 2如果pSptd还没初始化过,先 阅读全文
posted @ 2020-01-15 18:21 掉头发的666 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 这块内容是个关键性流程。 tars调用在调用层,一般只会简单的 PatchPrx proxy = Application::getCommunicator()->stringToProxy<PatchPrx>(_patchRequest.patchobj); proxy->timeout(60000 阅读全文
posted @ 2020-01-15 18:19 掉头发的666 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 一般tars客户端使用方式: 我们用客户端进行tars rpc调用时候,一般如下面这样写: 这里只是列举了几种,还有更多的写法。其实都是分成两步: 1由Application::getCommunicator()->stringToProxy(strObjName)得到一个proxyPtr。 2再用 阅读全文
posted @ 2020-01-15 18:14 掉头发的666 阅读(1247) 评论(0) 推荐(0) 编辑
摘要: 客户端,服务端概念 每个服务进程,都是有且只有一个Application核心类。这里类继承于BaseNotify。作用可以理解成把所有初始化,消息通知,内部对象管理汇总类 在tars的概念中,有两套网络及实现管理部分。 一部分称之为服务端,实现了 提供功能给别的服务或者pc,web,h5等等各种客户 阅读全文
posted @ 2020-01-15 17:50 掉头发的666 阅读(768) 评论(0) 推荐(0) 编辑