我们有一个针对网络应用的新项目,该网站将在网站上显示横幅广告(作为网络),我们估计每个月可以处理200到400亿次展示.
我们当前的语言是在ASP ...但正在转向PHP.PHP 5是否有缩放Web应用程序的限制?或者,我是否应该让我们的团队投资购买JSP?
或者,它是应用服务器和/或数据库的问题?我们计划使用Oracle 10g作为数据库.
没有冒犯,但我强烈怀疑你大大高估了你将要服务的印象数.
那说:
PHP或应用程序层中使用的其他语言实际上与可伸缩性无关.由于应用程序层将其状态委托给数据库或等效数据库,因此可以直接在适当的负载平衡后添加所需的容量.语言的选择确实会影响每个服务器的效率,从而影响成本,但这与可扩展性不同.
它正在扩展更复杂的状态/数据存储.
对于您的应用,您有三个基本工作:
我们展示了什么广告?
提供补充
记录印象
每个都需要思考,可能需要不同的工具.
服务于添加的第二个是最简单的:使用CDN.如果您确实提供了您声称的数量,您应该能够协商优惠利率.
决定要展示的广告将非常具体到您的网络.它可能很简单,只需从数据库中读取几行,为给定日历期间的给定属性提供广告位置.或者它可能是复杂的上下文广告,如谷歌.假设它更像前者,并且放置数据库很小,那么这是扩展数据库读取的简单任务.您可以使用复制树或交替使用memcached等缓存层.
最后一个最终将是最困难的:如何扩展写入.一种常见的方法是仍然使用数据库,但采用分片扩展策略.更奇特的选项可能是使用支持计数器指令的键/值存储(例如Redis)或可缩放的OLAP数据库(例如Vertica).
以上所有假设您都能够确保能够为此负载提供服务的数据中心空间和网络配置,这对您正在谈论的数字来说并非无足轻重.
你确实意识到每月400亿大约是每秒 15,500 ,对吧?
扩展不会是你的问题 - 基础设施周期将成为你的问题.无论您选择哪种技术堆栈,您都需要大量的硬件 - 正如其他人以农场或云的形式所说的那样.