新聞中心
S4是一個(gè)通用的、分布式的、可擴(kuò)展的、分區(qū)容錯(cuò)的、可插拔的流式系統(tǒng)?;赟4框架,開(kāi)發(fā)者可以輕松開(kāi)發(fā)面向持續(xù)流數(shù)據(jù)處理的應(yīng)用。

創(chuàng)新互聯(lián)建站從2013年成立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元個(gè)舊做網(wǎng)站,已為上家服務(wù),為個(gè)舊各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
S4的設(shè)計(jì)特點(diǎn)有以下幾個(gè)方面。
- Actor Model
為了能在普通機(jī)型構(gòu)成的集群上進(jìn)行分布式處理,并且集群內(nèi)部不使用共享內(nèi)存,S4架構(gòu)采用了Actor模式,這種模式提供了封裝和地址透明語(yǔ)義,因此在允許應(yīng)用大規(guī)模并發(fā)的同時(shí),也提供了簡(jiǎn)單的編程接口。S4系統(tǒng)通過(guò)處理單元(Processing Elements,PEs)進(jìn)行計(jì)算,消息在處理單元間以數(shù)據(jù)事件的形式傳送,PE消費(fèi)事件,發(fā)出一個(gè)或多個(gè)可能被其他PE處理的事件,或者直接發(fā)布結(jié)果。每個(gè)PE的狀態(tài)對(duì)于其他PE不可見(jiàn),PE之間***的交互模式就是發(fā)出事件和消費(fèi)事件??蚣芴峁┝寺酚墒录胶线m的PE和創(chuàng)建新PE實(shí)例的功能。S4的設(shè)計(jì)模式符合封裝和地址透明的特性。
- Decentralized and Symmetric Architecture
除了遵循Actor模式,S4也參照了MapReduce模式。為了簡(jiǎn)化部署和運(yùn)維,從而達(dá)到更好地穩(wěn)定性和擴(kuò)展性,S4采用了對(duì)等架構(gòu),集群中的所有處理節(jié)點(diǎn)都是等同的,沒(méi)有中心控制。這種架構(gòu)將使得集群的擴(kuò)展性很好,處理節(jié)點(diǎn)的總數(shù)理論上無(wú)上限;同時(shí),S4將沒(méi)有單點(diǎn)容錯(cuò)的問(wèn)題。
- Pluggable Architecture
S4系統(tǒng)使用Java開(kāi)發(fā),采用了極富層次的模塊化編程,每個(gè)通用功能點(diǎn)都盡量抽象出來(lái)作為通用模塊,而且盡可能讓各模塊實(shí)現(xiàn)可定制化。
- Partial Fault-Tolerance
基于Zookeeper服務(wù)的集群管理層將會(huì)自動(dòng)路由事件從失效節(jié)點(diǎn)到其他節(jié)點(diǎn)。除非顯式保存到持久性存儲(chǔ),否則節(jié)點(diǎn)故障時(shí),節(jié)點(diǎn)上處理事件的狀態(tài)會(huì)丟失。
- Object Oriented
節(jié)點(diǎn)間通信采用“Plain Old Java Objects”(POJOs)模式,應(yīng)用開(kāi)發(fā)者不需要寫(xiě)Schemas 或用哈希表來(lái)在節(jié)點(diǎn)間發(fā)送Tuples。
S4的功能組件分3大類(lèi),Clients、Adapters和PNode Cluster,圖2顯示了S4系統(tǒng)框架。
圖2 Yahoo! S4流式系統(tǒng)框架結(jié)構(gòu)圖
S4提供Client Adapter,允許第三方客戶(hù)端向S4集群發(fā)送事件和接收事件。Adapter實(shí)現(xiàn)了基于JSON的API,支持多語(yǔ)言實(shí)現(xiàn)的客戶(hù)端驅(qū)動(dòng)。
Client通過(guò)Driver組件與Adapter進(jìn)行交互,Adapter也是一個(gè)Cluster,其中有多個(gè)Adapter結(jié)點(diǎn),Client 可以通過(guò)多個(gè)Driver與多個(gè)Adapter進(jìn)行通信,這樣可以保證單個(gè)Client在分發(fā)大數(shù)據(jù)量時(shí)Adapter不會(huì)成為瓶頸,也可以確保系統(tǒng)支持多個(gè)Client應(yīng)用并發(fā)執(zhí)行的快速、高效和可靠性。
在Adapter中,真正與Client交互的是其Stub組件,該組件實(shí)現(xiàn)了管理Client與Adapter之間通過(guò)TCP/IP協(xié)議進(jìn)行通信的功能。GenericJsonClientStub這個(gè)類(lèi)支持將事件在Client與Adapter之間以JSON的形式轉(zhuǎn)換,從而支持更多種類(lèi)型的 Client應(yīng)用。不同的Client可以配置不同的Stub來(lái)與Adapter進(jìn)行通信,用戶(hù)可以定義自己的Stub來(lái)實(shí)現(xiàn)自己想要的業(yè)務(wù)邏輯,這樣也使得Client的行為更加多樣性、個(gè)性化。
分享名稱(chēng):流式計(jì)算系統(tǒng)-Yahoo!S4
路徑分享:http://www.5511xx.com/article/dpohspd.html


咨詢(xún)
建站咨詢(xún)
