免费注册 查看新帖 |

Chinaunix

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

[网络] 自助服务系统的设计请教? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-15 21:32 |只看该作者 |倒序浏览
目前在开发一个软件项目,是局域网络架构,一服务器加十多台自助终端,各自助终端向服务发出各业务请求,
服务器响应自助终端的请求。整套系统要求24X7的无故障运行,不需人工干预。

服务端和自助终端的大致架构是  网络监听接收线程和网络发送线程,分别对应接收队列和发送队列缓冲,
数据分析线程消费接收队列的内容,并产生一些工作任务至工作任务队列。工作线程依次从工作任务队列中取出
各工作任务,进行相关的工作,可能会产生相关的反馈结果至网络发送队列。
1 第一个疑惑是,在具体的业务工作请求中,例如终端向服务器发出一请求的socket通信业务帧,具体实现是向发送队列插入一个帧数据, 发送线程再取出再发送,在这样子的一个机制下,当网络socket通信(不一定是硬件)有问题的时候,有啥好的方法把该错误信息反馈至终端用户?以及如何进行一些保护,具有一定的容错和自恢复性?

2 第二个疑惑是: 服务器有一些工作是控制一些下位机硬件,发出一些控制命令后,是需要一定时间后才知道执行结果的, 再需要把执行结果返回给相关的自助终端。这些工作均是在工作线程中完成,请问对此种情况有没有一些成熟稳定的模式或者思路,谢谢!

非常欢迎各位高手讨论,发表各自的思路高见,如有经验介绍则更佳,谢谢了!

论坛徽章:
0
2 [报告]
发表于 2013-08-16 08:44 |只看该作者
自己顶一下,欢迎各位讨论,谢谢!

论坛徽章:
0
3 [报告]
发表于 2013-08-16 09:43 |只看该作者
socket网络编程的容错性和稳定性非常重要,这里几句话没法说清楚,建议楼主看看开源项目中是如何进行socket编程的,建议可以看看haproxy,比如connect、listen、send等函数的返回值他们是怎么处理的。

论坛徽章:
0
4 [报告]
发表于 2013-08-16 09:52 |只看该作者
关于第二点,楼主可以用非阻塞socket和epoll进行组合,局域网中就算几千台终端也不成问题。

论坛徽章:
0
5 [报告]
发表于 2013-08-16 12:00 |只看该作者
wjg501917603 发表于 2013-08-16 09:43
socket网络编程的容错性和稳定性非常重要,这里几句话没法说清楚,建议楼主看看开源项目中是如何进行socket ...


谢谢wjg501917603高见, 确实是网络编程的容错性很稳定性很重要,我目前采用的技术是udp协议加回答帧确认来进行通信,
您说的一些send recv等数据收发的函数的返回值确实有判断处理, 由于我目前的架构是使用 一发送线程专门负责发送数据帧,只是从 发送队列中取数据,
并通过socket发送数据,我的疑惑是: 如果这个检查到socket函数返回值有问题,如何把该结果反馈至业务层,说明该业务数据帧没有发送成功。

论坛徽章:
0
6 [报告]
发表于 2013-08-27 18:05 |只看该作者
自己顶一下,欢迎各位发表高见,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP