Storm是什么:
創(chuàng)新互聯(lián)公司公司2013年成立,公司以網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、系統(tǒng)開發(fā)、網(wǎng)絡(luò)推廣、文化傳媒、企業(yè)宣傳、平面廣告設(shè)計(jì)等為主要業(yè)務(wù),適用行業(yè)近百種。服務(wù)企業(yè)客戶近1000家,涉及國內(nèi)多個(gè)省份客戶。擁有多年網(wǎng)站建設(shè)開發(fā)經(jīng)驗(yàn)。為企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、創(chuàng)意設(shè)計(jì)、宣傳推廣等服務(wù)。 通過專業(yè)的設(shè)計(jì)、獨(dú)特的風(fēng)格,為不同客戶提供各種風(fēng)格的特色服務(wù)。如果只用一句話來描述storm的話,可能會(huì)是這樣:分布式實(shí)時(shí)計(jì)算系統(tǒng)。按照storm作者的說法,storm對(duì)于實(shí)時(shí)計(jì)算的意義類似于hadoop對(duì)于批處理的意義。我們都知道,根據(jù)google mapreduce來實(shí)現(xiàn)的hadoop為我們提供了map, reduce原語,使我們的批處理程序變得非常地簡單和優(yōu)美。對(duì)比Hadoop的批處理,Storm是個(gè)實(shí)時(shí)的、分布式以及具備高容錯(cuò)的計(jì)算系統(tǒng)。同Hadoop一樣Storm也可以處理大批量的數(shù)據(jù),然而Storm在保證高可靠性的前提下還可以讓處理進(jìn)行的更加實(shí)時(shí);也就是說,所有的信息都會(huì)被處理。Storm可以擴(kuò)展到不同的機(jī)器上進(jìn)行大批量的數(shù)據(jù)處理,他同樣還有其他一些特性。
Storm的架構(gòu):
Storm的集群由一個(gè)主節(jié)點(diǎn)和多個(gè)工作節(jié)點(diǎn)組成。主節(jié)點(diǎn)運(yùn)行了一個(gè)名為“nimbus”的守護(hù)進(jìn)程,用于分配代碼、布置任務(wù)及故障檢測。每個(gè)工作節(jié)點(diǎn)都運(yùn)行了一個(gè)名為“supervisor”的守護(hù)進(jìn)程,用于監(jiān)聽工作,開始并終止工作進(jìn)程。Nimbus和Supervisor都能快速失敗,而且是無狀態(tài)的,這樣一來他們都變得十分健壯,兩者的協(xié)調(diào)工作是由Zookeeper來完成的。Zookeeper用于管理集群中的不同組件。ZeroMQ是內(nèi)部消息系統(tǒng),JZMQ是ZeroMQ的Java Binding。有個(gè)名為storm-deploy的子項(xiàng)目,可以在AWS上一鍵部署Storm集群。
Storm優(yōu)勢(shì):
a.簡單的編程模型。類似于MapReduce降低了并行批處理復(fù)雜性,Storm降低了進(jìn)行實(shí)時(shí)處理的復(fù)雜性。
b.服務(wù)化,一個(gè)服務(wù)框架,支持熱部署,即時(shí)上線或下線App。
c.可以使用各種編程語言。你可以在Storm之上使用各種編程語言。默認(rèn)支持Clojure、Java、Ruby和Python。要增加對(duì)其他語言的支持,只需要實(shí)現(xiàn)一個(gè)簡單的Storm通信協(xié)議即可。
d.容錯(cuò)性。Storm會(huì)管理工作進(jìn)程和節(jié)點(diǎn)故障。
e.水平擴(kuò)展。計(jì)算是在多個(gè)線程、進(jìn)程和服務(wù)器之間并行進(jìn)行的。
f.可靠的消息處理。Storm保證每個(gè)消息至少能得到一次完整處理。任務(wù)失敗時(shí),它會(huì)從消息源重試消息。
g.快速。系統(tǒng)的設(shè)計(jì)保證了消息能得到快速的處理,使用ZeroMQ作為其底層的消息隊(duì)列。
h.本地模式。Storm有一個(gè)“本地模式”,可以在處理過程中完全模擬Storm集群。這讓你可以快速進(jìn)行開發(fā)和單元測試。
Storm存在的問題:
a、目前的開源版本中只是單節(jié)點(diǎn)nimbus,掛掉只能自動(dòng)重啟,可以考慮實(shí)現(xiàn)一個(gè)雙nimbus的布局。
b、Clojure是一個(gè)在JVM平臺(tái)運(yùn)行的動(dòng)態(tài)函數(shù)式編程語言,優(yōu)勢(shì)在于流程計(jì)算,Storm的部分核心內(nèi)容由Clojure編寫,雖然性能上提高不少但同時(shí)也提升了維護(hù)成本。
storm的適用場景:
流數(shù)據(jù)處理。Storm可以用來處理源源不斷流進(jìn)來的消息,處理之后將結(jié)果寫入到某個(gè)存儲(chǔ)中去。
分布式rpc。由于storm的處理組件是分布式的,而且處理延遲極低,所以可以作為一個(gè)通用的分布式rpc框架來使用。當(dāng)然,其實(shí)我們的搜索引擎本身也是一個(gè)分布式rpc系統(tǒng)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。