C ++:客户端-服务器分布式处理构想,发送数据后关闭连接,任务完成后重新打开?

| 因此,我正在尝试寻找一种具有分布式计算客户端-服务器体系结构的最佳方法,该体系结构允许尽可能多的客户端,而不必在服务器上过分费力。 *请注意,尽管我尚未启动任何客户端/服务器代码,但我正在使用boost库。 我想我想打开一个从客户端到服务器的TCP连接,说“嘿,我会为您做一些工作”,他们在连接期间服务器会发送任务和该任务的数据,然后关闭该连接这样服务器就不会有大量开放的套接字线程。客户端完成处理后,它将重新连接到服务器并发送完成的数据(如果没有其他要完成的任务,则再次关闭连接)。 这是一个好主意吗?这样做的最佳方法是什么? 服务器可能需要管理多达256个客户端(最大的情况)。     
已邀请:
您是否看过Amazon的MapReduce服务?它正是为这种事情而构建的。 http://aws.amazon.com/elasticmapreduce/ 它具有很大的可扩展性,几乎可以处理您可以扔给它的任何工作。 编辑:如果您想要一个开放的解决方案,建议您查看Apache Hadoop及其MapReduce产品。此外,如果这对您的应用程序有利,那么您可以签出OpenStack来托管您自己的云基础架构。 http://www.openstack.org/     
我建议作为一种选择来探索BOINC软件,该软件是开源的,并且正是为此而精心设计的。这假定该任务将不需要与其他客户端进行通信,而只需与服务器进行通信即可。 这是seti @ home,einstein @ home,folding @ home和几乎所有@home所使用的软件!     

要回复问题请先登录注册