我有一个安装在固定容器中的服务器,其带宽和 CPU 有限。
在此服务器上,我有一个网站,它对其数据库发出了大量请求。
Web应用程序的MySQL数据库只有一张表。
客户端应用程序每 5 秒通过 AJAX 发出一个请求,AJAX 打开 MySQL 数据库。当网站上同时有数百名用户访问超过 10 分钟时,固定容器内的访问量将难以为继。
为了尽量减少固定容器的负载,我想将这些请求从
1. 客户端查询应用程序的 MySQL 数据库,该数据库位于资源有限的服务器中
到
2. 客户端向另一台服务器查询,每分钟的请求数没有固定限制
好处是我不必将整个 Web 应用程序移动到无限容器中,相反,它可以以相当低的成本在另一台有弹性或功能更强大的服务器上发出更多的 AJAX 请求。
有没有更简单的内部方法?
- MySQL 负载均衡器
- 缓存系统
- MySQL 从属复制
答案1
您几乎列出了您的选项。如果您的数据非常静态,并且可以被多个客户端有效地重复用于多个查询,那么您应该考虑某种形式的缓存。
一些选项包括:
内存缓存安装在您的网站容器中的守护进程。应用程序将首先查询 memcache,查看是否存在所需数据,如果没有,才会查询 MySQL。然后将其存储到缓存中,并设置一定的过期时间。
亚马逊AWS官方博客- 也是 memcache,但由 AWS 管理。
MySQL 缓存查询- 您仍然向数据库发出请求,但数据库会缓存以前的结果并以更快的速度返回它们。
尝试优化数据库架构并添加正确的索引。这将加快处理速度并降低数据库负载。
如果您的网站太受欢迎,并且使用的实例大小无法跟上,也许您需要选择更大的实例。看看云监控监控并检查系统负载。
希望有帮助:)