你如何处理负载上的大流量?

时间:2016-01-27 08:36:01

标签: java performance web high-availability

我们正在为一个在中国新年前夕拥有巨大流量负荷的项目工作。我们的目标吞吐量高达20w pqs,我们之前从未有过处理如此大流量的经验。

我们使用Spring MVC后端和Mysql与Percona集群作为数据库层,redis用于缓存。我们的网络基础设施是LVS-> nginx-> tomcat - > mysql / redis。

当你处理这种情况时,你会做什么?

1 个答案:

答案 0 :(得分:1)

首先,您需要通过运行PAT类型的测试来扩展应用程序。

处理负载有三种主要策略:

  1. 该网站可以投资一台具有大量处理能力的大型机器 电源,内存,磁盘空间和冗余。
  2. 该网站可以在多台计算机上分配负载。
  3. 该网站可以使用前两个选项的某种组合。
  4. 当您每次访问时访问具有不同URL的网站时(例如www1.xyz.com,www2.xyz.com,www3.xyz.com等),您就知道该网站正在使用前端的第二种方法。通常,该站点将具有一组独立的计算机,每台计算机都运行Web服务器软件。他们都可以访问该网站页面的相同副本。传入的页面请求以两种方式之一分布在所有机器上:

    • 网站的域名服务器(DNS)可以分配负载。 DNS是一种将域名转换为IP的Internet服务 地址。每次请求Web服务器DNS时 以循环方式轮换通过可用的IP地址进行共享 负荷。各个服务器可以共享相同的访问权限 该网站的网页集。
    • 负载均衡开关可以分配负载。对网站的所有请求都到达一台机器,然后将请求传递给一台机器 可用的服务器。交换机可以从服务器中找到 哪一个负载最少,所以它们都在做同等数量的 工作的。这是HowStuffWorks使用它的方法 服务器。负载均衡器在三个不同的Web之间分配负载 服务器。其中一个可能会失败而对网站没有影响。