免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10014 | 回复: 11
打印 上一主题 下一主题

系统管理工具[cmclient-cmserver]第二种工作模式讨论 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-04 11:22 |只看该作者 |倒序浏览
刚在群里跟诸位讨论了下。总结下:
目前第一版本的问题有:

第一:
server通过多线程遍历每一个client,来发送文件或者命令给client机器,这样我总觉得不是很好,而且即使用多线程或者多进程来实现通知的话,每个进程总要轮训不少机器的,对这个性能不是很乐观。
第二:
如果多进程(线程)再遍历通知的过程中发现有些机器不能连接或者发送命令或者文件时失败了,可以向用户反映出这个错误,但是却不适宜再次尝试,如果再次尝试时还失败怎么办?
这样在server端就会造成很复杂的逻辑处理。

可能还有别的问题,等总结到了再说。
针对上面的问题,讨论做如下修改:
  
第一:服务器端还是轮训,但是仅仅是通过UDP发送一个通知消息给client,这样做就能减少轮训过程中的时间耗费了,client接收到通知后,按照通知的server地址,去上面获取最新的任务。
第二:客户端每隔固定时间,比如一分钟,去server上查询最新任务,有的话,就更新下来,进行执行。

通过这两种工作模式的增加,应该能解决两个问题了。
偶先去实践下。
回头再分享

论坛徽章:
0
2 [报告]
发表于 2011-05-04 11:27 |只看该作者
用数据说话

论坛徽章:
0
3 [报告]
发表于 2011-05-04 11:30 |只看该作者
是啊,测试完了看看结果比较,先把各种模式搞出来

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
4 [报告]
发表于 2011-05-04 12:04 |只看该作者
回复 1# duanjigang


    你的任务处理都由client完成,任务分派由server完成;如果是这样的话,server端首先需要维护client列表,管理任务的分派情况。
其次,你需要维护心跳机制吧,client端属于任务的执行者,如果由server端主动分派,就可能造成任务的积压效应, 得不到及时处理,比较好的方式还是由client端自行获取任务,并维护心跳机制,这样能更好的体现“按需分配”的原则。

论坛徽章:
0
5 [报告]
发表于 2011-05-04 12:07 |只看该作者
回复  duanjigang


    你的任务处理都由client完成,任务分派由server完成;如果是这样的话,server端 ...
dreamice 发表于 2011-05-04 12:04



    心跳其实不需要,因为client列表是server端的配置文件来告知的。或者从db中加载。
只要有任务,就去连接client通知,管它这个机器存在不存在,目前的做法是每个client的连接设置2s超时。

server不需要管client在不在线

论坛徽章:
27
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:24:09CU大牛徽章
日期:2013-09-18 15:24:20CU大牛徽章
日期:2013-09-18 15:24:25CU大牛徽章
日期:2013-09-18 15:24:31CU大牛徽章
日期:2013-09-18 15:24:36CU大牛徽章
日期:2013-09-18 15:24:41CU大牛徽章
日期:2013-09-18 15:24:48CU大牛徽章
日期:2013-09-18 15:24:52处女座
日期:2013-09-27 17:45:43
6 [报告]
发表于 2011-05-27 15:41 |只看该作者
若是server挂了呢{:3_196:}

论坛徽章:
27
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:24:09CU大牛徽章
日期:2013-09-18 15:24:20CU大牛徽章
日期:2013-09-18 15:24:25CU大牛徽章
日期:2013-09-18 15:24:31CU大牛徽章
日期:2013-09-18 15:24:36CU大牛徽章
日期:2013-09-18 15:24:41CU大牛徽章
日期:2013-09-18 15:24:48CU大牛徽章
日期:2013-09-18 15:24:52处女座
日期:2013-09-27 17:45:43
7 [报告]
发表于 2011-05-27 15:43 |只看该作者
回复  duanjigang


    你的任务处理都由client完成,任务分派由server完成;如果是这样的话,server端 ...
dreamice 发表于 2011-05-04 12:04


这种方式很好,我的项目也是采取这样的方式,但是client的完成时间是不可控

论坛徽章:
0
8 [报告]
发表于 2011-05-27 21:23 |只看该作者
若是server挂了呢
yifangyou 发表于 2011-05-27 15:41



    如果server挂了?
你指的是控制中心还是cmserver?

论坛徽章:
0
9 [报告]
发表于 2011-05-27 21:25 |只看该作者
这种方式很好,我的项目也是采取这样的方式,但是client的完成时间是不可控
yifangyou 发表于 2011-05-27 15:43



    是的,异步的任务,确实时间不可控,如果追求实时结果查看的话,主动推比较靠谱
如果追求实际下发效果而不是很重视实时结果的话,异步被动更新比较好

论坛徽章:
0
10 [报告]
发表于 2011-05-30 10:53 |只看该作者
自动轮训更新已经搞定了
做了个简单的认证机制。通过server端的IP地址来认证。。
再想想怎们把gpg签名加进去,这样更安全
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP