0

我计划构建一个在单台计算机上运行的 Web 应用程序,并尽可能高效地利用硬件资源。app的逻辑不会很复杂。以下是我的设计:

操作系统:Linux(CentOS 5)

网络服务器:Nginx

网页脚本:PHP

资料库:东京内阁+东京暴君

索引:狮身人面像

我不会使用诸如 MySQL 之类的 RDBMS,因为我认为带有索引器 (Sphinx) 的键值存储 (Tokyo cabinet) 将满足部署普通 Web 应用程序的所有需求,而且性能也比 MySQL 更好。

我的问题是:这种设计是单台计算机的高效架构吗?或者如何改进?

(我知道这个问题可能是主观的,但我真的需要你的帮助)

非常感谢~

编辑:

我要托管我的应用程序的计算机是普通PC,例如8GB~16GB内存,500G~1TB硬盘等。我认为它不需要考虑“可扩展性”。Web 应用程序的每一个第一步都是从一台机器开始的,而且它总是从头开始。

4

2 回答 2

1

数据库的选择

我认为您选择的数据库类型较少取决于系统托管在多少台计算机上。我认为这应该更多地取决于您想要/需要保留的数据质量。

例如,如果您需要存储客户的送货地址,则需要在存储结构中说明这一点。名称值对似乎是一个很容易开始的结构,但如果您预见到以下任何情况,您应该考虑迁移到标准数据库系统

  • 跟踪变化
  • 报告活动/报告
  • 并发用户

表现

这取决于您的代码、图像、内容、缓存等,就像它在您的数据库中一样。

于 2010-01-27T02:14:08.460 回答
1

好吧,一种查看方法是对其进行负载测试: http: //grinder.sourceforge.net/

我从未与东京内阁合作过,但如果它的功能足够,那么它可能会比 DB 快得多。

但从长远来看,当您开始扩展该框时,您通过调整您的应用程序以在一个框上工作而实现的任何节省都将很快失去。尝试添加大量缓存,而让应用程序更快的黑客只会走这么远。更重要的是,您应该尝试考虑如何轻松地解耦各个层。

于 2010-01-27T02:14:08.960 回答