网站建设关于应用服务器集群解决方案。网站建设公司资深框架工程师认为随着访问量继续增加,单台应用服务器已经无法满足需求了。在假设数据库服务器没有压力的情况下,网站建设公司提醒可以把应用服务器从一台变成了两台甚至多台,把用户的请求分散到不同的服务器中,从而提高负载能力。多台应用服务器之间没有直接的交互,它们都是依赖数据库各自对外提供服务。我们以增加了一台应用服务器为例。然而事情并不是如此简单,系统演变到这里,将会出现下面四个问题:
(1)用户的请求由谁来转发到具体的应用服务器,即负载均衡问题。
(2)转发算法,即集群调度算法问题。
( 3 )应用服务器如何返回用户的请求,即集群模式问题。
(4)如果每次访问到的服务器不一样,数据的一致性如何维护,即session(阶段)的问题。
网站建设关于数据库读写分离化
上面我们总是假设数据库负载正常,但随着访问量的提高,数据库的负载也在慢慢增大。那么可能有人马上就想到跟应用服务器一样,把数据库一分为二再负载均衡即可。但对于数据库来说,并没有那么简单。假如我们简单地把数据库一分为二,然后将对于数据库的请求,分别负载到A机器和B机器,那么显而易见会造成两台数据库数据不统一的问题。对于这种情况,我们可以先考虑使用读写分离的方式。读写分离后的数据库网站架构如图1-7所示
。这个结构变化后也会带来两个问题:
( 1)主从数据库之间数据同步问题。
(2)应用对于数据源的选择问题。
网站建设关于服务器集群用搜索引擎缓解读库的压力
数据库做读库的话,常常对模糊查找力不从心,即使做了读写分离,这个问题也未能解决。以我们所举的交易网站为例,发布的商品存储在数据库中,用户最常使用的功能就是查找商品,尤其是根据商品的标题来查找对应的商品。对于这种需求,一般我们都是通过SQL的 like功能来实现的,但是这种方式的代价非常大。此时,可以使用搜索引擎的倒排索引来完成,从而大大提高查询速度。引入搜索引擎后也会带来一些开销,比如:需要实现索引的构建、维护搜索引擎集群等。引入搜索引擎后的网站架构如图1-8所示
。
网站建设关于服务器集群知识之数据库水平拆分与垂直拆分
网站演进到现在,交易、商品、用户的数据都还在同一个数据库中。尽管人们采取了增加缓存、读写分离的方式,但随着数据库中内容的持续增加,数据库的瓶颈越来越突出。此时,我们有数据垂直拆分和水平拆分两种选择。
·数据垂直拆分
数据垂直拆分的意思是把数据库中不同的业务数据拆分到不同的数据库中,结合现在的例子,就是把交易、商品、用户的数据分开。其优点在于,解决了原来把所有业务放在一个数据库中的压力问题,可以根据业务的特点进行更多的优化;缺点是需要维护多个数据库。数据垂直拆分后的网站架构如图1-9所示。
·数据水平拆分
数据水平拆分就是把同一个表中的数据拆分到两个甚至多个数据库中。产生数据水平拆分的原因是某个业务的数据量或者更新量到达了单个数据库的瓶颈,这时就可以把这个表拆分到两个或更多个数据库中。数据水平拆分后,又出现了新问题:访问用户信息的应用系统需要解决SQL路由的问题,因为现在用户信息分在了两个数据库中,需要在进行数据操作时了解要操作的数据在哪里。数据水平拆分后的网站架构如图1-10所示
。
网站建设关于服务器集群知识之应用的拆分
随着社会的发展,业务越来越多,应用越来越大。我们需要考虑如何避免让应用越来越臃肿。这就需要把应用拆开,使一个应用变为两个甚至更多应用。还是利用上面的例子,我们可以把用户、商品、交易拆分开,变成“用户-商品”和“用户-交易”两个子系统。拆分应用后的网站架构如图1-11所示。
这样拆分后,可能会有一些相同的代码,比如商品和交易都需要使用用户信息,这样两个系统中就都要保留操作用户信息的代码。如何保证这些代码可以复用是一个需要解决的问题。
网站建设公司为了解决上面拆分应用后所出现的问题,我们把公共的服务拆分出来,形成一种服务化的模式,简称SOA( service-oriented architecture)。面向服务的网站架构如图1-12所示。
其优点在于,相同的代码不会散落在不同的应用中,代码得到了更好的维护。以上的演变过程只是一个例子,并不适合所有的网站,实际中网站演进过程与自身业务情况和遇到的问题有密切的关系,没有固定的模式。只有认真地分析和不断地探究,才能发现适合自己网站的架构。好了,
深圳网站建设公司本文关于“
网站建设关于应用服务器集群解决方案”就分享到这里,谢谢关注,博纳网络编辑整理。