首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

这样的分布式如何实现,应该选择哪种通信方式

2012-02-26 
这样的分布式怎么实现,应该选择哪种通信方式?有主控制服务器Server1,上边运行着程序A,A维持着多个任务队列

这样的分布式怎么实现,应该选择哪种通信方式?
有主控制服务器Server1,上边运行着程序A,A维持着多个任务队列。
有作业服务器Server2、server3、server4...serverN,上边分别运行着程序B1,B2,B3,...Bn
B1到Bn分别从A中任务队列获取任务并执行,并且定时将执行情况发送至A应进行统计
所有有服务器处于同一局域网 B1至Bn以及A的管理界面需采用C/S结构  

请问程序间应该如何通信 把A做成WebServer? 还是用Remoting? 或者其他的方式?

[解决办法]
好像有个开源项目和楼主的情况类似,其主要是为了一般计算机用户向科学计算贡献剩余计算能力的,叫什么名字我真记不得了。
[解决办法]
试试WCF
[解决办法]
WCF MSMQ
[解决办法]
采用WCF的netMSMQBibnding为用队列构建分布式应用程序提供支持。
[解决办法]
如果业务量很大,数据通信非常频繁的话,SOCKET可能是唯一的选择,WCF,Remoting通信损耗都非常大,要处理的话得用异步通信方式,需要维护几个队列:
server1上的任务队列的入栈及出栈要异步进行。
server1上的命令队列(比如服务器上线、离线、汇报进度等)
各个分布处理Bn服务器的任务收发队列
如果要求可以断线接续还要考虑设置断线接续队列等。

假设你的意图是服务器B1~Bn完成当前任务后取新任务的情况(这样比较简单,效率也较高),就要定义好相关命令协议(比如取任务、收任务等)

总之,socket通信有些难度,但效率比其他方式高N倍(相当于增加N台服务器)
[解决办法]
如果无大数据传输,建议用WCF。(需要.net 3.5支持)

热点排行