日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阿卡接口_阿卡vs风暴

發(fā)布時間:2023/12/3 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿卡接口_阿卡vs风暴 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

阿卡接口

我最近在Twitter的Storm上工作了一段時間,這讓我想知道,它與另一個高性能的并發(fā)數(shù)據(jù)處理框架Akka相比如何 。

什么是Akka和Storm?

讓我們從兩個系統(tǒng)的簡短描述開始。 Storm是一種分布式實時計算系統(tǒng)。 在Storm集群上,您執(zhí)行拓撲 ,該拓撲處理元組 (數(shù)據(jù))流。 每個拓撲都是一個由噴口 (生成元組)和螺栓 (轉(zhuǎn)換元組)組成的圖形。 Storm負責(zé)群集通信,群集之間的故障轉(zhuǎn)移和拓撲分布。

Akka是用于構(gòu)建分布式,并發(fā),容錯應(yīng)用程序的工具包。 在Akka應(yīng)用程序中,基本構(gòu)造是actor ; actor異步處理消息 ,并且保證每個actor實例一次最多使用一個線程運行,從而使并發(fā)變得更加容易。 Actor也可以遠程部署。 即將提供一個集群模塊 ,該模塊將處理集群節(jié)點上的參與者的自動故障轉(zhuǎn)移和分配。 兩種系統(tǒng)都可以很好地擴展,并且可以處理大量數(shù)據(jù)。 但是何時使用一個,何時使用另一個?

關(guān)于該主題還有另一篇不錯的博客文章,但我想進一步進行比較:讓我們看看Storm中的基本構(gòu)造與Akka中的基本構(gòu)造相比。

比較基礎(chǔ)

首先,Storm中數(shù)據(jù)的基本單位是元組 。 一個元組可以有任意數(shù)量的元素,每個元組元素可以是任何對象,只要有一個序列化器即可。 在Akka中,基本單位是message ,它可以是任何對象,但是它也應(yīng)該可序列化(用于將其發(fā)送給遠程參與者)。 因此,這里的概念幾乎是等效的。

讓我們看一下基本的計算單位。 在Storm中,我們有一些組成部分螺栓 。 螺栓可以是任何代碼,它可以對傳入的元組進行任意處理。 它還可以存儲一些可變數(shù)據(jù),例如以累積結(jié)果。 此外,螺栓在單個線程中運行,因此,除非您在螺栓中啟動其他線程,否則不必擔(dān)心并發(fā)訪問螺栓數(shù)據(jù)。 這與演員非常相似,不是嗎? 因此,暴風(fēng)雨螺栓/萌芽對應(yīng)于Akka演員。 這兩個如何詳細比較? 參與者可以接收任意消息; 螺栓可以接收任意元組。 預(yù)計兩者都將根據(jù)接收到的數(shù)據(jù)進行一些處理。 兩者都具有內(nèi)部狀態(tài),該狀態(tài)是私有的,并且可以防止并發(fā)線程訪問。

演員和螺栓:差異

一個關(guān)鍵的區(qū)別是角色和螺栓之間的通信方式。 演員可以將消息發(fā)送給其他任何演員,只要它具有ActorRef (如果沒有,則可以按名稱查找演員)。 它還可以將回復(fù)發(fā)送給正在處理的郵件的發(fā)件人。 另一方面,暴風(fēng)雨是單向的 。 您無法發(fā)送回郵件; 您也無法將消息發(fā)送到任意螺栓。 您還可以將元組發(fā)送到命名通道(流),這將導(dǎo)致元組(消息)廣播到拓撲中定義的所有偵聽器。 (螺栓還會向發(fā)短信確認消息,這也是通信的一種形式。)

在Storm中,可以并行運行螺栓/新芽代碼的多個副本(取決于并行性設(shè)置 )。 因此,這對應(yīng)于一組(可能是遠程的)actor,在它們前面有一個負載均衡器actor 。 在Akka的路線中眾所周知的概念。 關(guān)于元組如何路由到Storm中的螺栓實例(隨機,字段上的一致性哈希),有兩種選擇,這大致對應(yīng)于Akka中的各種路由器選項(輪詢,消息上的一致性哈希)。

螺栓和演員的“重量”也有所不同。 在Akka,通常會有很多演員 (多達數(shù)百萬)。 在Storm中,預(yù)期的螺栓數(shù)量要少得多; 無論如何這都不是Storm的缺點,而是設(shè)計上的決定。 同樣,Akka角色通常共享線程 ,而每個螺栓實例都傾向于具有專用線程

其他特性

Storm還具有一項現(xiàn)成的Akka尚未實現(xiàn)的關(guān)鍵功能: 保證消息傳遞 。 Storm跟蹤了整個元組樹,這些元組樹是由發(fā)芽產(chǎn)生的任何元組產(chǎn)生的。 如果未確認所有元組,則將重播該元組。

另外,Storm的群集管理更加先進(基于Zookeeper的自動故障轉(zhuǎn)移,群集中工作人員的自動平衡);以及 但是即將推出的Akka群集模塊應(yīng)該可以解決這個問題。

最后,Storm中的通信布局-拓撲-是靜態(tài)的,并且是預(yù)先定義的。 在Akka中,通信模式可以隨時間變化,并且可以完全動態(tài)。 actor可以向其他任何actor發(fā)送消息,甚至可以發(fā)送地址(ActorRefs)。

因此,總體而言,Storm很好地實現(xiàn)了特定范圍的用法,而Akka則更多地是通用工具包。 可以在Akka之上構(gòu)建類似于Storm的系統(tǒng),但反之則不行(至少很難)。

參考: Adam Warski博客的Blog中來自JCG合作伙伴 Adam Warski的Akka vs Storm 。

翻譯自: https://www.javacodegeeks.com/2013/06/akka-vs-storm.html

阿卡接口

總結(jié)

以上是生活随笔為你收集整理的阿卡接口_阿卡vs风暴的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。