怎样实现SNMP代理端触发异步通知
经过思考,agent端的行为模式就两个:处理请求,发通知。其简单性上不足以引入pthread那样的多线程模式。所以我有了第四个选项:设定select/poll可配置的超时。这样每次返回都能对注册的、可能异常的节点进行轮询,有则发trap,无则立即返回,所以这种轮询是非阻塞的。简单地说就是:poll请求 ----500ms----\u0026gt; 是否发trap --------\u0026gt; poll请求 ----500ms----\u0026gt;……当然这种同步模式下延时(lantency)是不可避免的,不过SNMP代理端本身对延时要求不高,何况又是基于UDP,不必过多考虑可靠性。如果某个请求被阻塞了,一定时间内没有回复,管理端不需要trap也能知道阻塞了。这样的好处是——保持简单的同步模式,保留原来的架构。至于alarm/signal机制来自于知名开源软件Net-SNMP,比较古老的系统调用,这是最简单的方案,其它的没仔细看(也看不太懂)。当然,不是说不能用多线程,可以fork一个新项目。不管怎样,还是要感谢 @陈硕 老师的回答。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 北京22家市属医院均开展安检基本实现重点区域安检措施全覆盖
- 长江流域渔民退捕“上岸”实现扩产新致富
- 实现“甜蜜计划”,这对中哈跨国夫妻好甜
- 北京地铁11号线西段三座车站提前实现主体结构封顶
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
