博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mooon-agent核心设计图
阅读量:6229 次
发布时间:2019-06-21

本文共 1139 字,大约阅读时间需要 3 分钟。

说明:以下类图只画出了基础的核心类和主要关系,弱的依赖关系没有画出来。
应用场景:
在很多应用中,会有一个中心节点(在这里叫作Center,它可以是Master,也可以不是),每个节点都要和Center建立通讯,两者之间会有心跳等,Center还可能下发一些控制命令,这个模型是定的,只是具体的命令字会存在差异和不同的处理。mooon-agent就是为解决这个问题而设计的,提供一个可重用的agent框架,通过抽象命令处理成抽象接口ICommandProcessor,以实现支持不行应用要求的命令字处理。同时对一些常用的行为进行封装内置,以提升使用效率。
简述:
以CAgentContext类为入口,以CAgentThread为中心。为何以CAgentThread为中心,因为以它为中心时,以减少对象之间的关联层次。ICommandProcessor是一个回调接口,由使用者实现,用于对指定命令字的处理,但mooon-agent会内置一些CommandProcessor。CResourceThread是用来定时获取系统状态信息的,如CPU信息、内存信息、流量信息等。CSendMachine和CRecvMachine是两个状态机,分别处理消息发送和消息接收。限制同一时刻只能会有一个CAgentConnector,它是用来连接Center的,Center就是通常所说的主控或Master,同一时刻只会有一个主Master,但发生主备Master切换时,要求能够连接到备Master,因此需要多CCenterHost,它的IP信息通过域名指定,初次和需要重连接时,都会对域名重新进行解析,但考虑到域名服务器也存在不可用的时候,所以如果没有解析到新的IP,是使用上一次解析到的IP,以增强可用性。
主要功能包括:
1.定时的心跳(但请注意心跳只有在指定的时间内无数据发送给Center时,才会发送心跳)
2.异步数据接收和发送(前提:要求连接已建立,否则CAgentThread会被阻塞在建立连接阶段)
3.数据上报(所以需要上报的数据都必须衔存于CReportQueue,然后由CAgentThread调度上报)
4.命令字处理框架(实现ICommandProcessor接口,并注入mooon-agent即可)
5.内置的CommandProcessor(实现通用的,由参数控制是否启用)
6.精确到秒级的时间(很多情况只需要到秒级,这样可以减少对time()函数的系统调用)
7.定时的系统资源(可以用来取得CPU、内存、流量等数据)

转载于:https://www.cnblogs.com/aquester/archive/2012/06/05/9892023.html

你可能感兴趣的文章
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
医疗数据难获得,人工智能医疗发展遭遇瓶颈期
查看>>
数据集成服务破解SaaS集成难题
查看>>
【云栖大会】阿里云和红帽达成合作为百万级客户提供更多企业级解决方案
查看>>
GNU Chess
查看>>
漂亮的字体组合的秘密
查看>>
免费高品质的纹理素材网站
查看>>
《Linux From Scratch》第一部分:介绍 第一章:介绍-1.1 如何构建LFS系统
查看>>
Sketch的过去现在和未来
查看>>
TableEdit UI_10
查看>>
[译] 通知是一种「暗模式」吗?
查看>>
企业在云迁移过程中需解决常见的IP地址问题
查看>>
AWS 张侠:为企业创新和转型提供助力
查看>>
阿里云王坚:运营才能缔造真正的云计算
查看>>
远程数据库的表超过20个索引的影响
查看>>
__attribute__ ((packed)) 的作用
查看>>
【Django】CentOS7安装Django笔记
查看>>
《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.71. 再次清理无用内容...
查看>>
趋势科技CEO陈怡桦:敌人是谁?
查看>>
zabbix漏洞利用 Zabbix Server远程代码执行漏洞CVE-2017-2824 2.4.X均受影响
查看>>