通信:

按照功能和業(yè)務(wù)分拆為多個子系統(tǒng)之后,首要問題就是各個子系統(tǒng)之間的通信,也叫作遠(yuǎn)程調(diào)用(RPC)。

基于htt" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 大型分布式網(wǎng)站設(shè)計與實踐

大型分布式網(wǎng)站設(shè)計與實踐

時間:2023-09-08 16:54:02 | 來源:網(wǎng)站運營

時間:2023-09-08 16:54:02 來源:網(wǎng)站運營

大型分布式網(wǎng)站設(shè)計與實踐:分布式應(yīng)用架構(gòu)就是解決系統(tǒng)之間的通信,存儲,安全,性能監(jiān)控,還有數(shù)據(jù)分析等問題。


通信:

按照功能和業(yè)務(wù)分拆為多個子系統(tǒng)之后,首要問題就是各個子系統(tǒng)之間的通信,也叫作遠(yuǎn)程調(diào)用(RPC)。

基于http協(xié)議的RPC,具有靈活便捷,平臺無關(guān)性等優(yōu)點,因此得到廣泛的使用。

基于tcp協(xié)議的RPC,通信效率高,但是實現(xiàn)起來更加復(fù)雜,各個企業(yè)之間的協(xié)議和標(biāo)準(zhǔn)不同,難以實現(xiàn)跨平臺和企業(yè)間通信。

同時基于網(wǎng)絡(luò)環(huán)境的復(fù)雜性,同時還要考慮多線程并發(fā),鎖,io等底層細(xì)節(jié)的實現(xiàn),任意小的錯誤都會被無限放大。因此選擇http協(xié)議更符合主流 很多成熟的web容器已經(jīng)處理好這些事情 開放人員可以將更多的精力集中在業(yè)務(wù)的實現(xiàn)上,而非處理底層細(xì)節(jié)。


同時通過代碼優(yōu)化和使用gizp數(shù)據(jù)壓縮 能夠縮小與tcp通信效率的差距。




通信載體,JSON是以字符串形式,通過人眼可閱讀,

Protocol buffer雖然性能要更好,但是代碼入侵性大

XML結(jié)構(gòu)過于冗余


當(dāng)系統(tǒng)的集群規(guī)模很大時,通過人工去管理負(fù)載均衡,去配置維護(hù)服務(wù)和配置信息越來越困難。負(fù)載均衡服務(wù)器一旦宕機(jī),其他依賴它的服務(wù)就會失效。

此時,需要一個能夠動態(tài)注冊和獲取服務(wù)信息的地方,統(tǒng)一管理服務(wù)的名稱和其對應(yīng)的服務(wù)器列表信息,稱為服務(wù)配置中心。

能夠感知服務(wù)的存活狀態(tài),注冊新的可用服務(wù)。

zookeeper是針對大型分布式系統(tǒng)的可靠的協(xié)調(diào)系統(tǒng),提供的功能包括配置維護(hù),名字服務(wù),分布式同步等。




存儲:

通過NoSQL實現(xiàn)熱點數(shù)據(jù)緩存。

使用NoSQL實現(xiàn)分布式session。

MySQL讀寫分離,分庫分表。

消息系統(tǒng),消息作為應(yīng)用間通信的一種方式,保存在隊列中,實現(xiàn)系統(tǒng)的異步,降低系統(tǒng)耦合度,提升響應(yīng)速度。

ActiveMQ,rabbitMQ等,常用的是發(fā)布訂閱模式。

垂直化的搜索引擎在分布式系統(tǒng)中是一個非常重要的角色,既能滿足用戶對于全文檢索,模糊查詢的需求,解決like查詢效率低的問題,同時解決由于分庫分表,或者使用NoSQL導(dǎo)致無法進(jìn)行多表關(guān)聯(lián)查詢的問題,開源的搜索引擎框架Lucene和solr的組合。




安全:

對于常規(guī)的web攻擊手段,如xss,CRSF,SQL注入等,通常解決容易,如xss的防范通過轉(zhuǎn)義輸入的尖括號,

防范CRSF需要將cookie設(shè)置httponly 以及增加session的hash token,

防范SQL注入需要將分號等符號轉(zhuǎn)義

圖片上傳漏洞,通過壓縮圖片來處理。




數(shù)字摘要算法有md5,sha,base64,

就是一個值通過某個函數(shù)的處理得出另外一個對應(yīng)的值,當(dāng)有些摘要算法不可逆向,并且暴力破解難度大的時候就可以直接作為加密算法使用,base64可逆向,所以它不作為加密算法。




加密算法,

對稱加密算法,DES,AES

非對稱加密,RSA

簽名認(rèn)證是非對稱加密技術(shù)與數(shù)字摘要技術(shù)的綜合運用。

HTTPS就是簽名證書的一種運用。

OAuth協(xié)議是授權(quán)第三方應(yīng)用訪問開放平臺的技術(shù)。


性能監(jiān)控:

由于線上系統(tǒng)不能夠debug解決問題,所以通常是通過分析日志查找問題。分析日志過程中,經(jīng)常需要使用一些shell命令,或者寫一些腳本加快分析的速度,更快的從日志中篩選有價值的內(nèi)容。

如grep,awk等命令

性能測試工具,ab,jmeter




數(shù)據(jù)分析:

對于寫入的日志可以采用輪循的方式讀日志文件,但是對于不頻繁寫入的日志這樣做效率太低了,可以通過Linux系統(tǒng)提供的inotify機(jī)制,檢測文件被寫入了通知應(yīng)用程序來收集日志,

讀取到日志內(nèi)容不是簡單的輸出打印,而是通過activemq等消息中間件發(fā)送給那些日志訂閱方,然后進(jìn)行相應(yīng)的數(shù)據(jù)分析。

inotify解決日志收集效率問題,ActiveMQ解決日志數(shù)據(jù)分發(fā)問題,接下來就是解決日志分析和存儲問題。

數(shù)據(jù)經(jīng)過inotify的收集,activeMQ數(shù)據(jù)轉(zhuǎn)發(fā),經(jīng)過storm進(jìn)行實時處理,在存儲到MySQL,HDFS,hbase等存儲系統(tǒng),最后再進(jìn)行深度分析和實時的展現(xiàn)。




對于不需要實時分析的數(shù)據(jù),可以保存到HDFS上,然后通過mapreduce或者h(yuǎn)iveSQL進(jìn)行數(shù)據(jù)分析和挖掘。

對于需要實時展現(xiàn)的內(nèi)容,則可以保存到hbase上,hbase是高性能可伸縮的列表系統(tǒng)。

Hadoop的兩個核心,HDFS和mapreduce。

HDFS分布式文件系統(tǒng)并非傳統(tǒng)意義上的文件系統(tǒng),它工作在操作系統(tǒng)的用戶空間,由應(yīng)用程序來實現(xiàn),并不依賴底層文件系統(tǒng)的具體實現(xiàn)。


hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將HDFS存儲的結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供SQL查詢功能。


根據(jù)數(shù)據(jù)類型的不同,數(shù)據(jù)分析分兩種:

批量數(shù)據(jù)分析,適合做有限的數(shù)據(jù)的分析挖掘,離線數(shù)據(jù)分析大部分采用這種方式。如hive




流式數(shù)據(jù)分析,永遠(yuǎn)不會終結(jié)的流,源源不斷的從應(yīng)用服務(wù)器流向日志分析服務(wù) ,這種適合實時在線分析。如 storm




數(shù)據(jù)同步,

離線數(shù)據(jù)同步用sqoop,能夠?qū)ySQL和HDFS或者h(yuǎn)ive進(jìn)行雙向的轉(zhuǎn)換。

實時數(shù)據(jù)同步用activeMQ,實現(xiàn)增量數(shù)據(jù)同步。

數(shù)據(jù)報表工具,highcharts

關(guān)鍵詞:設(shè)計,實踐,分布,大型

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉