zoukankan      html  css  js  c++  java
  • tars framework 源码解读(五) framework 部分章节。NotifyServer 通知服务

    _maxPageSize /tars/hash<max_page_size> 配置中默认是29

    _maxPageNum /tars/hash<max_page_num> 配置中默认是30

    过滤条件。配在 /tars/filter

     

     

    NotifyF.tars 接口实现

     

    reportServer 框架上报的信息, 保存于数据库中

    实际执行的函数是 reportNotifyInfo.此种模式下如下:

    1、上报的内容是sResult中,检查服务的过滤规则,如果上报内容的在过滤中,此次上报取消.

    2、将上报内容生成sql语句,写入 "t_server_notifys"中。

     

    看了下此函数使用之处 几乎都是NodeServer中操作完毕之后,会调用此函数 上报操作内容。

     

    notifyServer 业务上报的信息, 用于报警

    此函数看调用处.貌似已废弃。替换成reportNotifyInfo

     

    实际执行的函数是 reportNotifyInfo.此种模式下如下:

    将内容格式整理下,存在 内存的。g_notifyHash 中。

    这里的写法比较有意思的地方是,g_notifyHash TarsHashMap<NotifyKey, NotifyInfo, ThreadLockPolicy, MemStorePolicy>类型,此数据结构设计的比较牛逼,进程重启也不会丢数据。

    key {

    NotifyKey stKey0;

    stKey0.name = info.sApp + info.sServer;

    stKey0.ip = current->getIp();

    stKey0.page = 0;

    }

    一直都是在拿第0页做开始。第0页没满,直接塞到第0页的NotifyInfo.notifyItems这个vector中。若第0页满了(判断满的条件是 NotifyInfo.notifyItems.size()>=_maxPageSize)则将第0页置换出去.被置换的页码是从1-_maxPageNum-1.轮询过去。。

     

    getNotifyInfo 获取上报信息

    从上面的 g_notifyHash 读取对应内容。

    根据指定的NotifyKey

    {

    name;//(app+server)

    ip;

    page;//页码

    }

    根据此key获取指定g_notifyHash的内容。。

    未看到调用之处.

     

    reportNotifyInfo 上报框架信息以及业务告警信息

    此函数是reportServernotifyServer的具体实现。详细看上面介绍。

     

    看代码实现。。TarsRemoteNotify中的 TarsRemoteNotify::notify()TarsRemoteNotify::report()全部都是执行的REPORT类型了。也就是全部都是 reportServer了??这么奇怪的吗?

     

     

    LoadDbThread db加载set相关信息的线程类

    定时频率30s一次. t_server_conf 中读取 所有服务的set方面信息。并用

    app+server+nodename 做可以;set_name+set_area+set_groupvalue。放在缓存中。

    这个set信息用于在 notifyServerreportServer时生成的上报数据里面的sSet字段所用.

     

     

  • 相关阅读:
    [导入]微软的XP和Server2003在双核CPU上有缺陷
    [导入]可怜的软件开发
    [CZoneSoft]在Firefox里播放wmv流媒体视频
    [导入]直接用IL改写别人的程序
    [导入]清除3721的中文上网插件CNS
    [导入]完成可脚本调用的视频录制控件
    垃圾短信投诉的地方和方法
    [导入]不需要服务器端的在线录制视频
    [导入]各银行跨行提款收费比较
    [导入]电热水器选购
  • 原文地址:https://www.cnblogs.com/yylingyao/p/12198397.html
Copyright © 2011-2022 走看看