gpt4 book ai didi

performance - 高性能网站的开源解决方案堆栈?

转载 作者:行者123 更新时间:2023-12-01 11:10:24 25 4
gpt4 key购买 nike

如果您的任务是为优先考虑可扩展的高性能的网站推荐开源解决方案堆栈,您会推荐什么?

定义上的一些尝试:

  • 可扩展性:部署后,解决方案堆栈应该能够通过简单地添加更多硬件从少数用户扩展到数百万用户。解决方案堆栈永远不应成为瓶颈。

  • 性能:想象一个网站可以处理数百万用户、数百 TB 数据(HTML、图像、视频等)、每天大量流量、每年至少 99.99% 的正常运行时间。

解决方案堆栈至少应指定:

  • 操作系统
  • 网络服务器
  • 数据库或等同物
  • 编程语言

如果需要,您还可以建议其他程序、库、工具等(例如特定于语言的库、负载平衡器、缓存)。

最佳答案

在设计高性能和可扩展的网站时,有许多关键领域:

  1. 缓存
  2. 磁盘 IO 和位置
  3. 数据库锁定
  4. 我有提到缓存吗?

任何人都不可能在 Stackoverflow 上为您提供完整的解决方案。您需要坐下来确定要向用户提供的内容类型、内容更改的频率以及可以将其存储在何处。

对于内容的缓存,你应该看看:Squid、Apache 的 mod_cache 和 memcached

应考虑物理磁盘。如果您通过拥有多个 Web 服务器来扩展您的解决方案,那么您将共享您的内容(视频、图像等)的一份副本,还是每台服务器各一份?如果您共享一个副本,那么请注意该单个磁盘上的 IO。如果每个服务器都有一份内容副本,那么您需要使这些副本保持同步。

数据库使用量应保持在最低限度。永远不要将图形存储在数据库中或其他可以保存在磁盘上的平面文件中的内容——网络服务器在从磁盘提供文件方面做得很好,但数据库在这方面做得不太好。想一想您需要将什么放入您的数据库,以及这些数据将多久更改一次和被读取一次。你什么时候需要锁定那个数据库? 10 次中有 9 次数据库是系统的瓶颈。

缓存。缓存。缓存。考虑提供尽可能多的静态内容。构建您的网页 HTML 一次,然后将其存储为缓存文件 - 在磁盘或 memcached 或类似文件中。

直接回答您的一些技术问题:

Web 服务器是给定的:Apache Httpd。不是最快的,但防弹和高度可配置。

操作系统:您的操作系统永远不可能成为您的瓶颈,因此请选择稳定且得到良好支持的操作系统——CentOS 运行良好。

DB:您明显的选择是 mySQL 和 Postgres。 Postgres 的性能优于两者,但正如我之前所说,您必须设法将数据库事件保持在最低限度。

语言:没关系。严重地。您可以使用 Python、Ruby、PHP、Java、.NET 等任何语言创建可扩展、性能良好的站点。您的语言不会成为瓶颈。

关于performance - 高性能网站的开源解决方案堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/622678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com