很高兴认识!
我有一个非常基本的应用程序,我目前正在使用 LAMP 堆栈运行它,它执行以下操作:
-接受HTTP请求
-操纵 cookie
-从(本地)Redis 中拉取数据
-从apache_geoip获取请求国家
-使用 http 请求和所有相应的请求/cookie/redis 数据做一些非常基本的业务逻辑
-发布消息到(远程)rabbitMQ
-输出 <1kb 的 HTML
到目前为止,我使用此设置得到了“OK”结果,处理了大约 800 个请求/秒的峰值,平均响应时间大约为 150 毫秒。 我目前需要对此进行改进以处理更多请求和响应时间。 我想知道是否有人可以就更适合这项任务的堆栈提出建议?
我知道这个问题有点遥不可及,除了测试各种语言/网络服务器之外,我不知道如何确定它。 任何帮助都将非常受欢迎
谢谢
最佳答案
800rps 一点也不差,但是你没有指定你的环境和硬件,所以如果没有它,没有人能给你任何具体的建议,而不是一般的建议,比如“缓存 geoip 结果”等(但它可能虽然没用)。
您必须分析您的应用程序以查看瓶颈,只有在做出决定之后,应用程序级别是否存在任何问题,或者您只需要将第二台(或第 N+1 台)机器添加到您的集群(如果有)。
附言:
如果您使用的是 Apache 和 php(并且没有硬依赖),请尝试用 nginx 和 php-fpm 替换它们。
有时添加简单的 HTTP 缓存机制有助于显着减少请求数量(因此您的服务器不会每次都做猴子工作,只会处理“唯一”请求)。
关于http - CPU 绑定(bind)非常简单的应用程序 : which stack for high traffic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23071081/