思途智旅-國內(nèi)知名的旅游信息化建設(shè)服務(wù)商,在迎來13周年之際,旗下品牌思途CMS也在本周迎來重大升級,此次更新主要針對底層框架升級,包含PHP版本升級,數(shù)據(jù)庫以Session 等技術(shù)更新,通過此次升級會大大提升網(wǎng)站運行速度,同時通過數(shù)據(jù)庫讀寫分離和Session 存儲云端化技術(shù)可以支持中大型網(wǎng)站做負(fù)載均衡分布式部署。
具體升級內(nèi)容如下:
一、系統(tǒng)支持PHP 7.0
此前版本僅支持PHP 5.4、5.5 升級后支持PHP 7.0 且兼容5.4、5.5
PHP 7.0核心優(yōu)勢:性能提升
重寫ZendVM,系統(tǒng)性能比PHP5.6提升300%。通俗點講就是程序運行效率更快,網(wǎng)站打開速度也會得到大幅度提升。
備注:在Zend引擎和拓展中,經(jīng)常要創(chuàng)建一個PHP的變量,底層就是一個zval指針。之前的版本都是通過MAKE_STD_ZVAL動態(tài)的從堆上分配一個zval內(nèi)存。而PHP可以直接使用棧內(nèi)存。
PHP7.0 其他 新特征
變量類型
PHP 7.0版本函數(shù)的參數(shù)和返回值增加類型限定,為了PHP 7.1版本JIT特征做準(zhǔn)備,增加類型后PHP JIT可以準(zhǔn)確判斷變量樂享,生成最佳的機器指令。
錯誤異常
PHP程序出錯后過去Zend引擎會發(fā)生致命錯誤并終止程序運行,PHP 7.0可以使用try/catch 捕獲錯誤。
二、實現(xiàn)數(shù)據(jù)庫讀寫分離
1、什么是數(shù)據(jù)庫讀寫分離
MySQL Proxy最強大的一項功能是實現(xiàn)“讀寫分離(Read/Write Splitting)”?;镜脑硎亲屩鲾?shù)據(jù)庫處理事務(wù)性查詢,而從數(shù)據(jù)庫處理SELECT查詢。數(shù)據(jù)庫復(fù)制被用來把事務(wù)性查詢導(dǎo)致的變更同步到集群中 的從數(shù)據(jù)庫。 當(dāng)然,主服務(wù)器也可以提供查詢服務(wù)。使用讀寫分離最大的作用無非是環(huán)節(jié)服務(wù)器壓力,提升網(wǎng)站運行速度。
2、數(shù)據(jù)庫讀寫分離解決什么問題?
大多數(shù)互聯(lián)網(wǎng)業(yè)務(wù),往往讀多寫少,這時候,數(shù)據(jù)庫的讀會首先稱為數(shù)據(jù)庫的瓶頸,這時,如果我們希望能夠線性的提升數(shù)據(jù)庫的讀性能,消除讀寫鎖沖突從而提升數(shù)據(jù)庫的寫性能,那么就可以使用數(shù)據(jù)庫讀寫分離,性能提升后,網(wǎng)站打開速度自然也快。
3、為什么數(shù)據(jù)庫讀寫分離會提升性能?
(1) 物理服務(wù)器增加,負(fù)荷增加。
(2) 主從只負(fù)責(zé)各自的寫和讀,極大程度的緩解X鎖和S鎖爭用。
(3) 從庫可配置myisam引擎,提升查詢性能以及節(jié)約系統(tǒng)開銷。
(4) 從庫同步主庫的數(shù)據(jù)和主庫直接寫還是有區(qū)別的,通過主庫發(fā)送來的binlog恢復(fù)數(shù)據(jù),但是,最重要區(qū)別在于主庫向從庫發(fā)送binlog是異步的,從庫恢復(fù)數(shù)據(jù)也是異步的。
(5) 讀寫分離適用與讀遠大于寫的場景,如果只有一臺服務(wù)器,當(dāng)select很多時,update和delete會被這些select訪問中的數(shù)據(jù)堵塞,等待select結(jié)束,并發(fā)性能不高。 對于寫和讀比例相近的應(yīng)用,應(yīng)該部署雙主相互復(fù)制。
(6) 可以在從庫啟動是增加一些參數(shù)來提高其讀的性能,例如--skip-innodb、--skip-bdb、--low-priority-updates以及--delay-key-write=ALL。
(7) 分?jǐn)傋x取。假如我們有1主3從,不考慮上述1中提到的從庫單方面設(shè)置,假設(shè)現(xiàn)在1 分鐘內(nèi)有10條寫入,150條讀取。那么,1主3從相當(dāng)于共計40條寫入,而讀取總數(shù)沒變,因此平均下來每臺服務(wù)器承擔(dān)了10條寫入和50條讀取(主庫不 承擔(dān)讀取操作)。
因此,雖然寫入沒變,但是讀取大大分?jǐn)偭耍岣吡讼到y(tǒng)性能。另外,當(dāng)讀取被分?jǐn)偤螅珠g接提高了寫入的性能。所以,總體性能提高了,說白 了就是拿機器和帶寬換性能。
(8) MySQL復(fù)制另外一大功能是增加冗余,提高可用性,當(dāng)一臺數(shù)據(jù)庫服務(wù)器宕機后能通過調(diào)整另外一臺從庫來以最快的速度恢復(fù)服務(wù),因此不能光看性能,也就是說1主1從也是可以的。
三、Session存儲云端化
Session是另一種記錄客戶狀態(tài)的機制,不同的是Cookie保存在客戶端瀏覽器中,而Session保存在服務(wù)器上??蛻舳藶g覽器訪問服務(wù)器的時候,服務(wù)器把客戶端信息以某種形式記錄在服務(wù)器上。客戶端瀏覽器再次訪問時只需要從該Session中查找該客戶的狀態(tài)就可以了。
Session 存儲云端化優(yōu)勢:
為了提高服務(wù)器端的負(fù)載能力,后臺一般將服務(wù)器節(jié)點做集群,通過ngnix通過輪詢的方式轉(zhuǎn)發(fā)到目標(biāo)服務(wù)器。打個比方,當(dāng)瀏覽器首次訪問A服務(wù)器生成Session 對象,然后在訪問生成的Session 對象,如果正好被ngnix轉(zhuǎn)發(fā)到了A服務(wù)器,那么沒問題可以獲取到Session 對象,如果不巧請求被轉(zhuǎn)發(fā)到B服務(wù)器,由于之前生成的Session 對象在A服務(wù)器,B服務(wù)器根本沒有生成session對象,很自然訪問不到Session 對象。那么將Session 存儲云端化后,將Session 放入redis中存在,這樣不管有多少臺應(yīng)用服務(wù)器節(jié)點,都能共享redis中存儲的Session 對象,從而不會出現(xiàn)Session 錯誤。
以上便是此次底層框架升級的全部內(nèi)容,升級后,網(wǎng)站打開速度更快,用戶體驗更好!
關(guān)于思途CMS
思途旅游CMS系統(tǒng),將十三余年旅游實體行業(yè)經(jīng)營經(jīng)驗與互聯(lián)網(wǎng)營銷實戰(zhàn)需求相結(jié)合,針對旅游企業(yè)網(wǎng)站建設(shè)、經(jīng)營需要,以效率提高、建立品牌,贏得利潤為出發(fā)點,經(jīng)過近十二年研發(fā),實現(xiàn)了讓旅游網(wǎng)站建設(shè)輕而易舉的目標(biāo)。
產(chǎn)品詳情請查看:思途CMS產(chǎn)品介紹
贊
6
有一點幫助
1
沒有幫助
參與評論