架構(gòu)圖如下圖所示。這張圖基本涵蓋了互聯(lián)網(wǎng)技術(shù)公司的大部分技術(shù)點,不同公司只是在具體的技術(shù)實現(xiàn)上稍有差異,但不會跳出這個框架的范疇。
為荔浦等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及荔浦網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、荔浦網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
SQL: 常用的有mysql,用于存儲業(yè)務(wù)數(shù)據(jù)?;ヂ?lián)網(wǎng)發(fā)展初期,各個業(yè)務(wù)一般都會獨立運營mysql集群,但隨著業(yè)務(wù)越來越多,mysql集群規(guī)模越來越大,那就有必要做成SQL平臺。
NoSQL: 翻譯為Not Only SQL,作為mysql的一種補充。Nosql一般本身就提供集群,且使用起來很方便,公司業(yè)務(wù)發(fā)展初期沒有必要。一般Nosql集群的數(shù)量越來越多,那就有必要做成Nosql平臺。
小文件: 互聯(lián)網(wǎng)中有很多小文件,比如商品圖片,F(xiàn)acebook的圖片。這類小文件具有數(shù)據(jù)小、數(shù)量巨大、訪問大的特點。如果每個業(yè)務(wù)都去考慮小文件存儲的話,就會出現(xiàn)重復(fù)造輪子現(xiàn)象,那就有必要做成小文件平臺了。
大文件: 互聯(lián)網(wǎng)的大文件主要分為兩類:一類是業(yè)務(wù)上的大數(shù)據(jù),例如Youtube的視頻、電影網(wǎng)站的電影;另一類是海量的日志數(shù)據(jù),例如各種訪問日志。實力雄厚的一些大公司會基于開源方案做成大數(shù)據(jù)平臺。
開發(fā)框架: 比如常見的Spring框架。
Web服務(wù)器: 常見的有tomcat、jetty等。
容器: Docker可以極大降低運維成本,以及在實現(xiàn)動態(tài)擴容上非常方便。
配置中心: 故名思義,配置中心就是集中管理各個系統(tǒng)的配置。
服務(wù)中心: 解決跨系統(tǒng)依賴的配置和調(diào)度問題。比如有10個系統(tǒng)依賴A系統(tǒng)的x接口,此時A系統(tǒng)實現(xiàn)了一個y接口可以更好地支持x接口,那么如果直接更新10個系統(tǒng)依賴的配置將會很麻煩。
消息隊列: 支持系統(tǒng)解耦。
負載均衡: 充當任務(wù)分配器的職責。
CDN: 可以對一些常用文件進行就近緩存,來提高訪問速度。
多機房: 多機房的主要目的是備災(zāi),當機房故障時可以快速地將業(yè)務(wù)切換到另外一個機房,這種切換操作允許一定時間的中斷,比如10分鐘,1個小時。
多中心: 多中心的要求就更高了,要求同時對外提供服務(wù),且業(yè)務(wù)能夠自動在多中心之間切換,故障后不需人工干預(yù)或者很少的人工干預(yù)就能自動恢復(fù)。
用戶管理: 對各個系統(tǒng)的用戶進行統(tǒng)一管理。
消息推送: 根據(jù)不同途徑分為短信、郵件、站內(nèi)信、App推送。
存儲云: 實現(xiàn)是CDN+小文件存儲。
圖片云: 實現(xiàn)也是CDN+小文件存儲。為何不與存儲云統(tǒng)一一套系統(tǒng)呢?這是因為圖片業(yè)務(wù)的復(fù)雜性導(dǎo)致的。圖片涉及的業(yè)務(wù)會更多,包括裁剪、壓縮、美化、審核、水印等。
業(yè)務(wù)千差萬別,各個互聯(lián)網(wǎng)業(yè)務(wù)面對的主要問題是復(fù)雜度越來越高。此時就要用到拆和合的技術(shù)。拆即將一個大系統(tǒng)拆分為多個子系統(tǒng),降低復(fù)雜度。當子系統(tǒng)越來越多,有可能就需要采用合的技術(shù)。
測試平臺的核心目的是提升測試效率。
運維平臺的核心職責分為四大塊:配置、部署、監(jiān)控、應(yīng)急。
數(shù)據(jù)平臺的核心職責主要包含三部分:數(shù)據(jù)管理、數(shù)據(jù)分析和數(shù)據(jù)應(yīng)用。
管理平臺的核心職責就是權(quán)限管理。
nosql 大多數(shù)以key-value的形式存儲,比如redis,并不是關(guān)系型數(shù)據(jù)庫的二位結(jié)構(gòu),也就沒有所謂的實體關(guān)系。所以基本上是沒法畫的。
圖數(shù)據(jù)庫(Graph database) 并非指存儲圖片的數(shù)據(jù)庫,而是以“圖”這種數(shù)據(jù)結(jié)構(gòu)存儲和查詢數(shù)據(jù)。目前比較典型的代表產(chǎn)品是Neo4j。
當前主流的關(guān)系型數(shù)據(jù)庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。
非關(guān)系型數(shù)據(jù)庫有 NoSql、Cloudant。
nosql和關(guān)系型數(shù)據(jù)庫比較?
優(yōu)點:
1)成本:nosql數(shù)據(jù)庫簡單易部署,基本都是開源軟件,不需要像使用oracle那樣花費大量成本購買使用,相比關(guān)系型數(shù)據(jù)庫價格便宜。
2)查詢速度:nosql數(shù)據(jù)庫將數(shù)據(jù)存儲于緩存之中,關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)存儲在硬盤中,自然查詢速度遠不及nosql數(shù)據(jù)庫。
3)存儲數(shù)據(jù)的格式:nosql的存儲格式是key,value形式、文檔形式、圖片形式等等,所以可以存儲基礎(chǔ)類型以及對象或者是集合等各種格式,而數(shù)據(jù)庫則只支持基礎(chǔ)類型。
4)擴展性:關(guān)系型數(shù)據(jù)庫有類似join這樣的多表查詢機制的限制導(dǎo)致擴展很艱難。
缺點:
1)維護的工具和資料有限,因為nosql是屬于新的技術(shù),不能和關(guān)系型數(shù)據(jù)庫10幾年的技術(shù)同日而語。
2)不提供對sql的支持,如果不支持sql這樣的工業(yè)標準,將產(chǎn)生一定用戶的學習和使用成本。
3)不提供關(guān)系型數(shù)據(jù)庫對事物的處理。
1、可能會問nosql和關(guān)系型數(shù)據(jù)庫的區(qū)別:
優(yōu)點:
1)成本:nosql數(shù)據(jù)庫簡單易部署,基本都是開源軟件,不需要像使用Oracle那樣花費大量成本購買使用,相比關(guān)系型數(shù)據(jù)庫價格便宜
2)查詢速度:nosql數(shù)據(jù)庫將數(shù)據(jù)存儲于緩存之中,關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)存儲在硬盤中,自然查詢速度遠不及nosql數(shù)據(jù)庫
3)存儲數(shù)據(jù)的格式:nosql的存儲格式是key,value形式、文檔形式、圖片形式等等,所以可以存儲基礎(chǔ)類型以及對象或者是集合等各種格式,而數(shù)據(jù)庫則只支持基礎(chǔ)類型
4)擴展性:關(guān)系型數(shù)據(jù)庫有類似join這樣的多表查詢機制的限制導(dǎo)致擴展很艱難
缺點:
1)維護的工具和資料有限,因為nosql是屬于新的技術(shù),不能和關(guān)系型數(shù)據(jù)庫10幾年的技術(shù)同日而語。
2)不提供對sql的支持,如果不支持sql這樣的工業(yè)標準,將產(chǎn)生一定用戶的學習和使用成本
3)不提供關(guān)系型數(shù)據(jù)庫對事物的處理
2、介紹下redis和mongodb:
自行g(shù)oogle。
3、應(yīng)用場景:
redis:
a.主要是做熱點數(shù)據(jù)緩存。
b.數(shù)據(jù)過期處理。
c.消息隊列等功能。
d.計數(shù),例如投票等。
mongodb:
mongodb的主要目標是在鍵/值存儲方式(提供了高性能和高度伸縮性)以及傳統(tǒng)的RDBMS系統(tǒng)(豐富的功能)架起一座橋梁,集兩者的優(yōu)勢于一身。mongo適用于以下場景:
a.網(wǎng)站數(shù)據(jù):mongo非常適合實時的插入,更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復(fù)制及高度伸縮性。
b.緩存:由于性能很高,mongo也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由mongo搭建的持久化緩存可以避免下層的數(shù)據(jù)源過載。
c.大尺寸、低價值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較貴,在此之前,很多程序員往往會選擇傳統(tǒng)的文件進行存儲。
d.高伸縮性的場景:mongo非常適合由數(shù)十或者數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫。
e.用于對象及JSON數(shù)據(jù)的存儲:mongo的BSON數(shù)據(jù)格式非常適合文檔格式化的存儲及查詢。
4、支持的數(shù)據(jù)類型:
內(nèi)容比較多,自行將網(wǎng)上的信息整理一下。