云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云存储_云主机贵吗_稳定性好

小七 141 0

宽带速度_如何选_云通信是什么东西

将一个网站或应用程序投入生产有其自身的挑战,但当它得到正确的牵引时,这是一个伟大的成就。看到游客数量不断增加总是感觉很好,不是吗?当然,除非你的交通量增加得太多,以至于撞坏了你的小灯塔。无论是在什么时间或是哪天,你的应用程序离线的成本都太高了,而且在很多情况下,淘客网,它会给生意。但是不要害怕!有很多方法可以使PHP应用程序更加可靠和一致。如果你想到了"可伸缩性"这个词,那么你就是对的好主意。进来简而言之,可伸缩性是指系统处理增加的流量或处理量,并在保持理想的用户体验的同时适应增长的能力。基本上有两种方法来缩放系统:垂直缩放,也称为缩放;水平缩放,也称为缩放向外。垂直扩展是通过增加系统资源来实现的,比如增加更多的内存和处理能力。例如,调整液滴大小就是垂直缩放。虽然这可以作为一个即时的解决方案,但它可能隐藏了你的应用程序下面的真正问题,而且不能保证一个功能加倍的服务器将运行你的应用程序两倍快。水平另一方面,扩展是通过向现有集群中添加更多服务器来实现的。我们来谈谈到底是什么意思是什么是水平缩放吗?集群就是一组服务器。负载平衡器在群集中的服务器之间分配工作负载。在任何时候,都可以将新的web服务器添加到现有的集群中,大数据云计算人工智能,以处理来自访问应用程序的用户的更多请求;这是水平的缩放。这里是一个水平缩放的例子图表:负载平衡器有一个单一的职责:决定来自集群的哪个服务器将接收被拦截的请求。它基本上就像一个反向代理,使过程与用户。而水平伸缩通常是最可靠和最有效的可伸缩性方法,它不像垂直伸缩那么简单。简而言之,扩展web应用程序的主要挑战是保持集群中所有节点的更新和同步。考虑以下几点场景。什么时候用户A向我的域名,负载平衡器将请求转发到server1。另一方面,用户B从集群server2转发另一个节点。当用户A对应用程序进行更改(如上载文件或更新数据库中的内容)时,会发生什么情况?如何保持群集中所有节点的一致性?此外,PHP默认将会话信息保存在磁盘中。如果用户A登录,考虑到负载平衡器可以将这些请求发送到群集中的另一个服务器,我们如何在后续请求中保留该用户的会话?让我们来讨论如何克服这些问题,并为现有的PHP应用程序做好水平准备缩放。分离,去耦,去耦准备一个系统以实现可伸缩性需要很多去耦工作,因为有必要使用更小的服务器和更少的责任,而不是一个巨大的、包罗万象的服务器。这就是水平缩放的本质。将应用程序分解为多个部分也有助于度量和确定可能存在的真正瓶颈有。考虑一下一个PHP应用程序,德国云服务器,用户可以登录并上传照片。应用程序使用一个基本的灯堆,照片存储在磁盘中,并在数据库中引用。这里的挑战是保持共享同一数据的多个应用服务器之间的一致性(用户上传的文件和用户会话)。这样,我们可以让多个应用程序节点共享同一个数据库服务器。这是第一步,通过减少web服务器的负载,建站系统哪个比较好,它将使应用程序的性能得到小幅度的提高。本教程可以帮助您那个。为了进一步的可伸缩性,您还应该考虑为数据库实现负载平衡环境。本教程演示如何为MySQL设置负载平衡器群集.用户会话一致性应用程序与数据库服务器隔离后,我们可以专注于PHP实现的特定问题。首先,我们需要找出一种跨节点处理用户会话的方法。让我们谈谈几个方法。关系由于MySQL的数据存储方式在很多网络数据库中都很容易实现。然而,这是一个不太理想的解决方案,因为它增加了大量的开销(对每个请求都要对数据库进行读写),而且在高流量事件中,数据库通常是第一个使用的向下。类似要实现另一个解决方案不需要任何网络代码,但是网络文件系统对于I/O操作(同样,对每个请求的读写)速度很慢,这可能会对应用程序产生负面影响性能。粘性sessionsticky会话是在负载平衡器中实现的,不需要对应用程序节点进行任何更改,因此这是处理用户会话的最简单方法。为了避免在服务器上共享相同的负载信息,用户总是需要重新定向会话节点。但是,此解决方案会产生新的问题。负载平衡器现在有了更多的职责,这可能会影响其性能并将其变成单点故障。这种方法还可以在集群中创建冷点和热点;返回的用户将始终访问同一个服务器,即使在向群集。使用Memcached或Redis服务器此解决方案需要设置一个或多个附加服务器来处理用户会话,但这是解决会话的最可靠方法问题。Memcached和Redis都是超快速的键值存储引擎,为PHP提供会话处理。简而言之,在设置Memcached或Redis服务器之后,您需要配置每个节点以能够连接到服务器并将其用作会话处理程序。这包括安装一个PHP扩展并在php.ini文件设置。更多有关为PHP设置Memcached会话处理程序的信息可以在PHP官方文档中找到。对于Redis,您可以在此找到详细的指南链接用户文件一致性到目前为止,物联网开发,我们已经分离了应用程序和数据库,并处理了用户会话一致性问题。我们仍然需要找到一个解决方案来保持用户上传的文件之间的一致性,因为它们可以存储在任何应用程序中节点。那里是解决这个问题的不同方法。在某些方面,它类似于用户会话的情况,但幸运的是,它实际上要简单得多。对于每个请求,文件不会写入或从磁盘读取,这使得文件共享不是资源密集型的。像GlusterFS这样的解决方案在这里可以很好地工作,它创建一个共享存储,将保存在一个节点中的任何内容复制到集群中的其他节点。您可以在这里找到关于如何使用GlusterFS来设置这样一个环境的详细说明教程。另一个常用的解决方案是使用对象存储来保存文件。这可以使用不同的方法实现,从简单的数据库blob存储到像aws3和Google云存储这样的云存储服务。但是,它可能需要对代码库进行大量更改,这取决于应用程序的运行方式已实现。加载通过适当地分离应用程序,最终可以创建将组成应用程序集群的副本节点。我们的示例应用程序现在有以下内容设置:两个App01App02应该是可访问的,并且能够以完全相同的方式处理请求。剩下要做的就是设置负载平衡器作为应用程序入口点,将用户重定向到簇(代表HighAvailability Proxy)是负载平衡的标准开源选择。它被Twitter、Instagram和Imgur等知名环境所使用。为了更好地理解HAProxy是如何工作的,以及配置它的不同方法,请查看以下介绍教程。另一个来自我们社区的优秀教程解释了如何将HAProxy设置为WordPress服务器的负载平衡器。了解水平缩放PHP所需的实际步骤是一个很好的起点申请。最终考虑为水平扩展准备一个应用程序起初可能看起来很吓人,但是一旦您了解了负载平衡器的工作原理,为了让您的环境做好准备,您可以更容易地确定应该采取哪些步骤规模。自然但是,当我们从零开始构建应用程序时,我们并没有太多的可伸缩性。值得一提的是,可伸缩性与性能并驾齐驱,但它们不是一回事,并非所有应用程序都需要可伸缩。另一方面,速度是所有应用都能受益的从。如果在YouTube上查看更多关于PHP的数字播放列表,看看你的性能吧!作者:Erika Heidi