我正在构建一个网址简短的web应用程序,我想知道最好的架构来做它,以提供一个快速和可靠的服务。
我想在不同的机器上有两种不同的服务。
这项服务根本不是网址速记器。这样解释就容易多了。
我只需要一台接收一个http查询并在数据库中插入记录的机器。我需要这台机器以一种非常高效的方式完成这个简单的任务。该系统将运行在linux (我还不知道发行版),我是完全开放的任何语言或技术。我正在考虑使用Yaws,“旋风”或者“Snap”来提供这种服务,但我还不知道是时候为这个部分规划架构了。数据库将建立在Hadoop上。
对于第三台机器,我只需要接受一种http请求(获取www.domain.com/shorturl),但是它必须非常快,而且应该足够稳定。
发布于 2010-06-03 18:59:10
你真的认为还需要另一个URL缩短器吗?只是周围有这么多人..。除非你偶然获得一个非常短和适当的域名,我只是不认为你的网站会被任何人注意到。当然是我的两分钱。
不管怎么说,关于技术部分:
在不知道这一点的情况下,很难回答你的问题。
这里唯一有意义的答案是“像瘟疫一样避免Java”。对于许多应用程序来说,Java应用程序服务器都是过度使用的,对于这样简单的应用程序,它肯定会过度使用。
我想在这里选择Linux/Apache/MySQL/PHP。当然,如果我能想出什么好的理由开始这个项目的话。
好的,现在它更有意义了;但是,从尽可能简单的开始,然后担心扩展的建议仍然有效。如果您的应用程序真的那么简单,那么任何合适的web服务器/语言/数据库组合都应该能够在现代硬件上每秒处理大量请求(但我仍然强烈建议避免使用Java)。
如果性能是最重要的,我将使用用C编写的CGI应用程序;这将是最快的解决方案,比任何解释语言或VM语言快几个数量级;让它对数据库进行简单的插入和选择应该不是那么困难。但我认为台灯足以满足你的需要..。他们真的在上面运行Facebook,你知道吗?
发布于 2010-07-16 08:48:11
这些只是记录数据,还是还会送回感兴趣的东西?如果它们只是日志记录,那么只需使用apache并将apache日志放到hadoop中即可。如果他们必须返回某种数据,那么我根本不清楚他们是如何得到他们返回的数据的。
尽管如此,apache为任何请求返回静态文件的速度还是相当快的。
发布于 2011-04-14 11:43:21
首先,我知道您说过它不是URL缩短器,但是如果它类似,RDBMS是存储这些数据的糟糕方法;因为任何两个数据之间没有真正的关系,所以您需要一个平面存储引擎。考虑Mongo (或者Couch,取决于您实际的解决方案空间)。
至于您的解决方案,请注意过早优化。有很多方法可以让你疯狂;既然你问了,我能想到的最疯狂的方法可能是启动Varnish,在VCL中编写所有的页面,并让它连接到后端的memcache来存储和检索相应的数据。但实际上,这是疯狂的,除非你是在明显荒谬的负荷下。
https://serverfault.com/questions/147959
复制相似问题