php - Android:网络托管公司对 WhatsApp 等应用程序的推荐

标签 php android mysql web-hosting google-cloud-messaging

我不知道这是否是解决此问题的正确/最佳位置,如果不是,我很抱歉,请告诉我它在哪里。
我已经编写了类似于 WhatsApp 的应用程序,并且可以与 localhost、PHP、MySQL、Google Cloud Messaging (GCM) 和 XMPP 配合使用。
现在我需要网络空间来使这个应用程序的服务可供全世界使用。

所以我的问题是:
您可以向我推荐哪些网络托管公司,它们不太贵并且可以稳定地处理大量用户(例如20亿)的流量?
有什么经验吗?

最佳答案

AWS(Amazon Web Services)和 Microsoft Azure 等扩展服务是最便宜的扩展方式,因为在实际使用之前您不会开始为扩展付费。然而,问题在于扩展并不完全是基础设施问题。您的代码还需要能够正确扩展,我可以根据经验告诉您,MySQL 将成为您在扩展时最头疼的问题。

MySQL 内置的扩展方法是复制,它非常适合偶尔写入和大量读取。问题是您的服务将是 50% 读取、50% 写入,这意味着您的事务时间将从 1-3 毫秒到 100-1000 毫秒波动,具体取决于复制位置之间的流量和距离。

此外,PHP(即使在像 Nginx 或 Node 这样的非阻塞服务器后面)仍然是面向线程的,因此如果您等待 100 毫秒来等待 SQL 调用返回,您就会浪费大量的计算时间,并为此付费不管你的线程是否真的在做某事。

我强烈建议您考虑编写一个 NODE 服务器,它将写入 Reddis 或等效的内存映射数据库来处理延迟关键部分(用户聊天)。您仍然可以使用 PHP 后端和 MySQL 来长期存储对话并执行数据分析。如果您想了解有关如何构建这样一个系统的更多详细信息,请发表评论,我将为您进行更深入的介绍。

关于php - Android:网络托管公司对 WhatsApp 等应用程序的推荐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23344732/

相关文章:

javascript - 在新页面中动态生成 HTML(服务器端)

javascript - 在新选项卡中打开页面时,JSON 或 AJAX 请求未显示在控制台中

php - 在单个 mysql 列中插入动态字段输入

php - 在 PHP 中如何舍入到最接近的 3 的倍数?

android - 无法识别 ViewEventActivity.class

mysql - 在 mySql 中并排合并来自两个表的数据

php - Mysql_real_escape_string() 警告混淆

android - 如何通过双击关闭 WebView?

java - 在 Android 应用程序中检查互联网连接

mysql - 按接收者姓名以外的不同用户名分组