将 C++ 服务器移植到云端

Posted

技术标签:

【中文标题】将 C++ 服务器移植到云端【英文标题】:Porting C++ server to cloud 【发布时间】:2019-08-26 21:43:36 【问题描述】:

我有多个传统服务器,成千上万的用户连接到这些服务器。我的服务器软件是用 C++ 编写的,在 TCP 套接字上侦听这些用户,并且我定义了自己的协议(在 TCP 之上)。服务器代码的编写使其能够处理客户端到客户端的通信(例如即时消息传递),无论哪个客户端连接到哪个服务器机器。这是典型的传统服务器场场景。

现在,当我想将其切换到云端时,我需要做哪些更改?我是云新手,我只知道云提供商为我们提供了与云实例/数据库通信的 API,我们现在无需担心实际运行的服务器实例(负载平衡等都由云基础设施负责)。

    单个云实例能否处理数千(或数百万)个连接?

    我的服务器代码是用 C++ 编写的,当我想切换到云时,它会过时吗?我是否需要使用云 API 从头开始​​开发我的服务器?

【问题讨论】:

【参考方案1】:

我的服务器代码是用 C++ 编写的,当我想切换到云时,它会过时吗?我是否需要使用云 API 从头开始​​开发我的服务器?

您拥有的是当前正在您内部硬件上运行的应用程序。通过云,硬件和操作系统基础设施由云提供商提供。您需要将您的应用程序带到云端并按原样(几乎)运行。例如,如果当前您在 CentOS 7 上的应用程序中运行,您可以在云中创建 CentOS 7 的实例,您的 C++ 应用程序应该可以正常运行。云提供商使用他们的 API “促进”。它不强制使用其 API 重写应用程序。所以,没有必要从头开始开发。

单个云实例能否处理数千(或数百万)个连接? 取决于您从云提供商处使用的实例的尺寸(w.r.t 到处理器、内存、n/w 吞吐量等)。

【讨论】:

以上是关于将 C++ 服务器移植到云端的主要内容,如果未能解决你的问题,请参考以下文章

将 python 代码移植到 C++ /(在 C++ 中打印出数组)

将 GNU C++ 程序移植到 Visual C++

将 C++ 类移植到 PyQt

将 SDL 示例移植到 OpenGL 和 C++

将 Delphi 逐步移植到 C++

如何将 Ubuntu C++ 库移植到 MinGW?