我们正在首页上实现一些代码,这些代码依赖于对每个唯一访客进行地理位置查找,我们可以选择查询地理位置Web服务(Maxmind)或下载数据库并在本地查询。服务器目前是512MB的Linode实例,并且每天只接收约1500个独立访客,但我们担心在流量激增期间会发生什么情况。
我清楚地知道本地查找会更快,但是在负载高峰期,从数据库中检索数据可能比处理附加的HTTP请求需要更多的RAM/CPU资源。显然,如果选择本地方式,则升级服务器内存很容易实现。我想象中,在每秒连接数超过一定数量后,服务器更有可能因查询其本地数据库而变得不可用,而不是Web API(当然,假设Web API服务器能够处理HTTP请求)。
如何处理偶发的流量波动而不会发生拒绝服务?请给出哪种解决方案是长期的最健壮的,以应对偶发的流量波动,例如:服务器需要能够处理高达200个连接/秒,每个连接需要一个DB查询或HTTP请求。
我清楚地知道本地查找会更快,但是在负载高峰期,从数据库中检索数据可能比处理附加的HTTP请求需要更多的RAM/CPU资源。显然,如果选择本地方式,则升级服务器内存很容易实现。我想象中,在每秒连接数超过一定数量后,服务器更有可能因查询其本地数据库而变得不可用,而不是Web API(当然,假设Web API服务器能够处理HTTP请求)。
如何处理偶发的流量波动而不会发生拒绝服务?请给出哪种解决方案是长期的最健壮的,以应对偶发的流量波动,例如:服务器需要能够处理高达200个连接/秒,每个连接需要一个DB查询或HTTP请求。