云计算实训总结_云计算平台实践心得
有段時間沒寫文章了,很快就大學畢業(yè)了,放松了一段時間,大四的生活過得有些愜意,放松的太久了,重新緊起
來有些難,但是內(nèi)心一直在不斷的鞭策自己,今天忍不住了,決定重新開始寫文章。告訴大家這個博客還要繼續(xù)更新,
沒有荒廢掉。
這篇文章簡單記錄一下我的云計算平臺實踐,云計算這個概念,總是被不斷的提起,在大三的時候就關(guān)注過一段時
間,但是當時一直停留在理論階段,沒有做什么實際的東西,所以就一直沒有寫任何關(guān)于云計算的東西,因為我一向是
先實踐,然后總結(jié),再寫文章。大四前半段,帶著我的團隊把一個項目的二期開發(fā)做完,然后下半段先是考了一個煩人
的考試,然后才著手將我的云計算平臺實踐出來,平臺的功能很少,因為只是自己做著玩,初衷是希望能夠為學校實現(xiàn)
一個云存儲平臺的,統(tǒng)一學校的數(shù)據(jù)源,方便學校今后的網(wǎng)絡建設和科研,為學校多做些貢獻。但是學校手頭也緊,公
費買個服務器都困難,只想安于現(xiàn)狀。所以后來只能自己做著玩了,不能因為沒有實際需求就不做了。
這個云存儲平臺是服務即平臺模式的實踐,提供WebService和API供其他應用系統(tǒng)調(diào)用,實現(xiàn)了20個接口,因為只
是模擬用的,數(shù)據(jù)模型做了簡化,只保留核心字段。架構(gòu)基于Hadoop+Hbase+EJB,大二的時候?qū)W了EJB但一直沒有實
踐過,一是因為沒有遇到必須用這個技術(shù)的項目;二是考慮到技術(shù)門檻,不方便后面的維護。實現(xiàn)平臺過程中遇到一個數(shù)
據(jù)節(jié)點不能為0的錯誤,因為報錯實在是不太明確,讓我一直以為是配置文件的問題,困擾了一段時間,后來發(fā)現(xiàn)是關(guān)于
用戶權(quán)限的linux間無密碼互訪有問題造成的,這個問題本身簡單,但是因為報錯不明確,誤導了我的判斷。
云計算技術(shù)還在發(fā)展中,隨著很多公司的采用,已經(jīng)趨于成熟。任何技術(shù)都需要通過實踐來發(fā)現(xiàn)問題解決問題。目前
來看,云存儲一定程度上可以取代關(guān)系型數(shù)據(jù)庫,關(guān)于數(shù)據(jù)庫事務和高級查詢可以借由第三方組件實現(xiàn)。松散的數(shù)據(jù)結(jié)構(gòu)
更加利于敏捷實踐,數(shù)據(jù)模型的字段可以更靈活的變更,我的云存儲平臺數(shù)據(jù)就是把教務系統(tǒng)的一些關(guān)系型數(shù)據(jù)模型過渡
到基于鍵值對的松散結(jié)構(gòu)中的。對于一些本身就具有映射關(guān)系的字段,甚至可以簡化到一個鍵值對關(guān)系中來。把所有關(guān)系
型數(shù)據(jù)都打散成為松散數(shù)據(jù),確實是很顛覆傳統(tǒng)思維的。但是有的時候逆向思維正是解決瓶頸問題的辦法,比如關(guān)系型數(shù)
據(jù)庫很難低成本的做到在限定時間內(nèi)從幾TB的數(shù)據(jù)中,排序并拿出TOP50W的數(shù)據(jù)。
Hbase本身的一些機制,可以從分布式文件存儲層面就為所有數(shù)據(jù)提供緩存,對于一次寫入多次讀取的數(shù)據(jù)效果尤其
顯著。我雖然沒有看過twitter的數(shù)據(jù)層實現(xiàn),但是如果讓我設計,我會把最占用存儲空間的數(shù)據(jù)部分,也就是一次寫入多
次讀取的微博和評論內(nèi)容部分寫入NoSQL中,穩(wěn)妥起見把其他對安全性要求高的隱私數(shù)據(jù)部分寫入MySQL,但是我仍然
可以把常用字段也同步到NoSQL中去以便提高系統(tǒng)性能。這可以看做是云存儲最常見的一種實踐方式。云存儲的另一種常
見實踐則是基于文檔化的分布式存儲,把視頻,圖片,音樂,文件以鍵值對的形式存儲,這些媒介的共同特點都是占用空
間大,一次上傳,多次讀取。這兩者其實可以歸為一類。即使是多次寫入,少量讀取的數(shù)據(jù)也可以實現(xiàn)一個數(shù)據(jù)緩沖層,
應對頻繁變更,然后定時定量持久化數(shù)據(jù)。所以存取比重不會影響對云存儲的使用,因此才有了我之前把關(guān)系型數(shù)據(jù)模型
完全轉(zhuǎn)化到松散型的做法。
利用Hbase本身的一些設計特點可以讓我們從松散表結(jié)構(gòu)設計上提高系統(tǒng)的性能,比如family列相同的部分會在物理上
存儲在更近的節(jié)點上,所以在從關(guān)系型到松散型過渡的時候,可以把family列設置為表名,把label子列設置為屬性字段,
這樣同一個表的數(shù)據(jù)可以在物理上更加緊湊,便于系統(tǒng)更快的取出同一數(shù)據(jù)模型的相關(guān)屬性。family列的定義和修改需要對
Hbase作類似于傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)定義,而label列則不需要定義直接可以使用,通過這個特性可以使表結(jié)構(gòu)字段動態(tài)化,從
而在數(shù)據(jù)持久層面實現(xiàn)動態(tài)化。對于功能獨立的本身具有鍵值映射關(guān)系的屬性則可以不使用上述的做法,而采用family列存
儲鍵屬性名稱,label列存儲鍵屬性值,value列存儲值屬性的值的方法。這是松散模型設計可以采用的一種實踐策略。
在業(yè)務服務層面分離成兩個層,一個層作為數(shù)據(jù)操作層,負責對數(shù)據(jù)操作和事務處理,另一個層作為業(yè)務服務層,負責
業(yè)務邏輯的拼裝、數(shù)據(jù)驗證、身份驗證等工作。接口設計方面要保證接口的合理性,清晰性,重用性。目前能想到的就是這
些了。
架構(gòu)如圖:
總結(jié)
以上是生活随笔為你收集整理的云计算实训总结_云计算平台实践心得的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面板和型材切割优化软件Boole.Opt
- 下一篇: 清淡,向晚花开