我们正在运行一个对时间非常敏感的 Web 应用程序(响应时间必须低于 100 毫秒),有很多请求(峰值时每分钟大约 20 万个请求)。架构非常简单:一个负载均衡器、几个 Web 服务器、运行 apache 和 php,以及一个运行 MySQL 的数据库。
我们还需要能够根据这些请求生成统计信息。
大约一年前,当我们为当前流量的十分之一提供服务时,我们开发了一些 bash/python 脚本来定期从 mysql 转储日志,将它们传输到另一台服务器,再次导入它们并在那里运行统计信息,其想法是让生产服务器尽可能少地做,这样我们就可以有一个较短的响应时间。
正如您可能想象的那样,该解决方案的扩展性不是很好,目前,统计服务器几乎没有跟上。我们需要一种实时生成统计数据的方法。
你有这种设置的经验吗?我们目前的想法是让 Web 服务器在每个请求上实时调用统计服务器。
两个主要问题是:
- 我们应该如何解决这个问题,以便响应时间不会增加太多
- 统计服务器或服务器必须处理来自所有 webheads 的所有请求/或者它需要能够水平扩展。