首页 » PHP教程 » phpsphinx扩大dll技巧_数据库讲坛|快速理解大年夜型网站架构进化史爱可生

phpsphinx扩大dll技巧_数据库讲坛|快速理解大年夜型网站架构进化史爱可生

访客 2024-12-08 0

扫一扫用手机浏览

文章目录 [+]

互联网上有很多关于网站架构的各种分享,有些紧张是从运维和根本架构的角度去剖析的(堆机器,做集群),太关注技能细节实现,普通的开拓职员基本看不太懂。

本文上部将紧张先容大型网站根本架构的扩展,下部则重点从运用程序的角度去先容网站架构的扩展和演化。

phpsphinx扩大dll技巧_数据库讲坛|快速理解大年夜型网站架构进化史爱可生

草根期间,快速开拓网站并上线。
当然,常日只是先试水,用户规模也没有形成,经济能力和投入也非常有限。

phpsphinx扩大dll技巧_数据库讲坛|快速理解大年夜型网站架构进化史爱可生
(图片来自网络侵删)

有一定的业务量和用户规模了,想提升网站速率,于是,缓存出场了。

市场反响还不错,用户量每天在增长,数据库猖獗读写,逐渐创造一台做事器快撑不住了。
于是,决定把DB和APP做分离。

单台数据库也觉得快撑不住了,一样平常都会考试测验做“读写分离”。
由于大部分互联网“读多写少”的特性所决定的。
Salve的台数,取决于按业务评估的读写比例。

数据库层面是缓解了,但是运用程序层面也涌现了瓶颈,由于访问量增大,加上早期程序员水平有限写的代码也很烂,职员流动性也大,很难去掩护和优化。
以是,很常用的办法还是“堆机器”。

加机器谁都会加,关键是加完之后得有效果,加完之后可能会引发一些问题。
例如非常常见的:页面输出缓存和本地缓存的问题,Session保存的问题……

到这里,已经基本做到了DB层面和运用层面的横向扩展了,可以开始关注一些其它方面,例如:站内搜索的精准度,对DB的依赖,开始引入全文索引。

Java领域用的较多的是Lucene、Solr等,而php领域用的比较多的是sphinx/coreseek。

到目前为止,一个能够承载日均百万级访问量的中型网站架构基本先容完了。
当然,每一步扩展里面都会有很多技能实现的细节,后续有韶光会写文章单独去阐发那些细节。

在做扩展知足了基本的性能需求后,我们会逐渐关注“可用性”(也便是我们常日听别人吹牛时说的SLA、几个9)。
如何担保真正“高可用”,也是个难题。

险些主流的大中型互联网公司,都会有用到类似的架构,只是节点数不同而已。

还有一招用的比较多的,那便是动静分离。
可以须要开拓职员合营(把静态资源放独立站点下),也可以不须要开拓职员合营(利用7层反向代理来处理,根据后缀名等信息来判断资源类型)。
有了单独的静态文件做事器之后,存储也是个问题,也须要扩展。
多台做事器的文件怎么保持同等,买不起共享存储怎么办?分布式文件系统也派上用场了。

还有一项目前国内外用的非常普遍的技能CDN加速。
目前该领域竞争激烈,也已经比较便宜了。
海内南北互联网问题比较严重,利用CDN可以有效办理这个问题。

CDN的基本事理并不繁芜,可以理解为智能DNS+Squid反向代理缓存 ,然后须要有很多机房节点供应访问。

截止目前为止,都没有怎么去改动运用程序的架构,或者说普通点,都不怎么须要大面积的修正代码。

如果上面那些手段都用光了,还是支撑不住怎么办?一直的加机器也不是办法啊?

随着业务越来越繁芜,网站的功能越来越多,虽然支配层面是采取的集群,但是运用程序架构层面还是“集中式”的,这样会导致很多耦合,不便于开拓、掩护,而且随意马虎“一荣俱损”。
以是,常日会把网站拆分出不同的子站点来单独宿主。

运用都拆了,由于单个数据库的连接,QPS,TPS,I/O处理能力都非常有限,DB层面也可以去做垂直分库操作。

拆分运用和DB之后,实在还是会有很多问题。
不同的站点,里面可能会有相同逻辑和功能的代码。
当然,对付一些根本的功能我们可以封装DLL或者Jar包去到处供应引用,但是这种强依赖也很随意马虎造成一些问题(版本问题、依赖关系等处理起来非常麻烦)。
这样,传说中的SOA的代价就得到表示了。

运用、做事之间还是会涌现一些依赖问题,这时候,高吞吐量的解耦利器涌现了

末了,还先容一个大型互联网公司都用的绝技–分库分表。
个人履历,不是业务发站和各方面非常急迫,不要轻易走这一步。

由于分库分表谁都会干,关键是拆完之后怎么办。
目前,市情上还没有完备开源免费的方案,能让你一劳永逸地办理数据库拆分问题。

分库分表

横向拆分纵向拆疏散布式数据访问层数据库中间件(代理)

标签:

相关文章

php空间明明技巧_PHP 命名空间namespace

PHP 命名空间可以办理以下两类问题:用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。为很长的标识...

PHP教程 2024-12-10 阅读0 评论0