C++: Client-Server 分布式处理思想,发送数据后关闭连接,任务完成后重新打开?

标签 c++ network-programming client-server cloud distributed-computing

因此,我正在努力想出最好的方法来拥有分布式计算客户端-服务器架构,该架构允许尽可能多的客户端,而不会对服务器造成太大负担。

*请注意,我正在使用 boost 库,尽管我还没有启动任何客户端/服务器代码。

认为我想打开一个从客户端到服务器的 TCP 连接,说“嘿,我会为你做一些工作”,他们服务器发送一个任务和该任务的数据该连接,然后关闭该连接,以便服务器没有大量打开的套接字线程。当客户端完成处理后,它会重新连接到服务器并发送完成的数据(如果没有进一步的任务要完成,再次关闭连接)。

这是个好主意吗?执行此操作的最佳方法是什么?

服务器可能需要管理多达 256 个客户端(最大情况)。

最佳答案

您看过 Amazon 的 MapReduce 服务吗?它正是为这类事情而构建的。

http://aws.amazon.com/elasticmapreduce/

它具有巨大的可扩展性,几乎可以处理您交给它的任何工作。

编辑:如果您想要一个开放的解决方案,我建议查看 Apache Hadoop 及其 MapReduce 产品。此外,如果这对您的应用程序有利,您还可以查看 OpenStack 以托管您自己的云基础架构。

http://www.openstack.org/

关于C++: Client-Server 分布式处理思想,发送数据后关闭连接,任务完成后重新打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5666306/

相关文章:

javascript - 我在哪里可以学习高级网络编程,特别是游戏开发方面的知识?

java - 客户端-服务器应用程序文件传输

c++ - 使用 Boost Asio 的快速数据(图像)传输服务器客户端

c++ - 如何根据给定的长度确定矩形?

c++ - 使用 boost iostreams 过滤器(关闭且不可复制)

c++ - 读取和写入文件在 C++ 中不起作用

c++ - C/C++混合程序中的错误LNK2005和错误LNK2019

c - C 中无法解释的行为。字符串的奇数或偶数

c++ - 正在发送数据报,但未收到 + 其他问题

java - 什么时候停止读取 telnet 输入?