一个百万级PHP站点的网站架构,你了解多少?
2021-07-14
了解了全球最大PHP站点的后台技术,今天我们来了解百万级PHP站点的网站架构:.de。 .de 是德国的一个社交网站。它是一个相对较小的站点,但它具有良好的架构并集成了许多技术,例如 PHP、Red5 和。
.de 目前拥有 200 万注册用户,20,000 并发用户,每天 200,000 条私信,每天 250,000 次登录。项目组有 11 名开发人员、2 名设计师和 2 名系统管理员。该网站的商业模式采用免费增值模式,用户可以使用搜索用户、给朋友发送消息、上传图片和视频等功能。
如果用户想要享受无限制的发送消息和上传图片,他们必须根据自己的需要支付不同类型的会员服务。网站上的视频聊天和其他服务也使用相同的策略。
.de 所有的服务都是基于服务的。前端有两台服务器,在高峰期提供每分钟 150,000 个请求的负载。每台机器都有四年的使用寿命,并且只有一个 CPU 和 3GB 内存。 .de 拥有三个独立的图像服务器,每分钟为 *...de 提供 80,000 个请求。
架构中一个很酷的设计是处理了大量请求,因此请求从缓存中获取内容,而无需直接访问 PHP 机器。比如用户信息页面(user)就是网站上需要集中处理的内容。如果所有的用户信息页面都缓存在上面,那么请求直接从上面获取内容。 .de 每分钟可以处理 8000 个请求。
架构中有三个图片服务器,提供本地图片缓存,用户上传图片到中央文件服务器。当向这三者之一请求图像时,如果该图像在服务器本地不存在,则会从中心文件服务器下载到服务器进行缓存和服务。这种负载均衡的分布式图像服务器架构设计可以减少主存储设备的负载。
当你到达这里时,很多人可能会觉得这些有点难以理解。没关系。我为大家准备了一套优质的PHP教程,涵盖了学习教程等。如果你已经知道并且想精通高级中级和高级PHP,我还有一个专注于高级和高级PHP的教程。点击下方标题链接获取方法!
全套框架,全套框架教程分享,PHP程序员受益!
PHP开发三年,只知道增删改查?那是因为你还没有规划好的php学习路线
PHP-FPM
该网站在 PHP-FPM 上运行。有28台双CPU、6GB内存的PHP机器,每台机器运行100个PHP-FPM工作线程。在启用 APC 的情况下使用 PHP5.3.x。 PHP5.3 可以减少 30% 以上的 CPU 和内存使用。
程序代码基于.2框架开发。一是可以利用外部资源,二是可以提高项目开发进度,同时让新开发者更容易加入到知名框架的团队中。虽然没有什么是完美的,但您可以从框架中获得很多好处,让团队可以更加专注于 .de 的业务开发。
网站的性能得到优化和使用。这是一个开源库。该框架非常易于个性化和配置,并且可以缓存最昂贵的服务器计算。
是主要站点。网站有几台服务器:一台4CPU,32GB的服务器存储用户相关信息,如基本信息、照片描述信息等。这台机器已经用了4年了,下一步是更换共享集群设计仍然基于这个系统来简化数据访问代码。数据按照用户ID进行分区,因为网站中的大部分信息都是以用户为中心的,比如照片、视频和消息。
共有三台服务器,以主-从-从的配置结构提供用户论坛服务。从服务器负责在网站上存储自定义消息。截至目前,已有2.50 亿条消息。另外四台机器是主从配置关系。另外在NDB组中配置了4台机器,为用户访问统计等密集写操作数据提供服务。
数据表设计尽量避免关联操作,缓存尽可能多的数据。当然,数据库的结构规范已经被彻底破坏了。因此,为了方便查找,数据库设计创建了一个数据挖掘表。大多数表都是类型表php大型网站技术架构,可以提供快速搜索。现在的问题是越来越多的表被完全锁定。 .de 正在考虑迁移到存储引擎。
网站架构中的应用相当多,超过45GB的缓存和51个节点。缓存会话、视图缓存、函数执行缓存等。架构中有一个系统可以在记录被修改时自动将数据更新到缓存中。未来改进缓存更新的一个可能解决方案是使用新的 Hash API 或。
2009 年年中开始在架构中使用它。这是一个很好的消息传递解决方案,易于部署和集成到此架构中。两台服务器在 LVS 后面运行。在上个月,更多的东西被整合到队列中,这意味着 28 个 PHP 服务器每天同时处理 500,000 个请求。向此队列发送日志、电子邮件通知、系统消息、图片上传等。
使用PHP-FPM中的st()函数集成队列消息,可以异步发送消息到队列。当系统需要向用户发送 HTML 或 JSON 格式的响应时,会调用该函数,这样用户就不必等到 PHP 脚本清理完毕。
该系统可以改进架构资源管理。例如,在高峰期,该服务每分钟可以处理 1,000 个登录请求。这意味着对用户表有 1000 次并发更新,以节省用户的登录时间。由于使用了队列机制php大型网站技术架构,这些查询可以以相反的顺序运行。如果需要提高处理速度,只需要增加更多的队列处理器即可。您甚至可以在不修改任何配置或部署新节点的情况下向集群添加更多服务器。
日志存储在一台机器上运行。在本机上,您可以根据模块/行为,或根据错误类型等查询/分组日志,这对于定位问题非常有用。在使用日志聚合服务之前,要一一登录PHP服务器尝试通过日志分析定位问题,非常麻烦。现在所有的日志都被收集到队列中并存储在队列中,这样可以集中进行问题检查和分析。
网站使用收集实时网站信息和统计数据。从请求每个模块/行为到命中和未命中、状态监控、Unix 负载等。该服务平均每分钟有 4800 次更新操作。实践证明,监控网站上发生的事情非常有用。其简单的文本协议和绘图功能,可轻松即插即用,适用于任何需要监控的系统。
一件很酷的事情是使用同时受监控的站点的两个版本。 1 月份部署了新版本的框架,将之前的代码部署为备份。这意味着该网站可能面临性能问题。所以可以用来在线比较两个版本。
发现新版本上的Unix负载表比较高,于是通过两个版本的性能分析找出问题所在。
红5
网站还为用户提供两种视频服务,一种是用户自己上传的视频,一种是视频聊天、用户视频互动和分享。到2009年年中,为用户提供每月17TB的流量服务。
是一个书面的分布式基准分析工具。在.de网站中,主要用于HTTP基准分析和与其他存储系统的对比分析()。使用系统记录主服务器的流量,然后将其转换为基准会话。然后流量被回放,成千上万的并发用户访问实验室的服务器。这样就可以非常接近实验环境中的真实场景。