Actor模型

有關(guān)并行(Parallelism),不得不提的肯定是Erlang,通用的面向并發(fā)的函數(shù)編程語言,這種編程語言的選擇蒂培,也是可以規(guī)避我們在程序設(shè)計上面減少很多精力放在鎖上面,這樣的設(shè)計方式榜苫,導致Erlang的性能特別好护戳。

Erlang主要的設(shè)計框架的精華是 Actor模型。

Actor模型


先科普一下Reactor pattern垂睬,高手勿噴媳荒。
我們在用的比較多的抗悍,C, C++, Java這些語言的時候,本質(zhì)還是一個面向過程的設(shè)計钳枕,隨著對性能的要求缴渊,和優(yōu)化的思想,出現(xiàn)了multithreading multiprocessing鱼炒,這些都是為了并發(fā)(concurrency)提升性能衔沼。但是終究迫于整個架構(gòu)影響,性能現(xiàn)在集大成的思想是node.js使用的Reactor pattern

Reactor pattern

回到Actor模型

The actor model in computer science is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent computation: in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and determine how to respond to the next message received.
The Actor model adopts the philosophy thateverything is an actor. This is similar to the everything is an object philosophy used by some object-oriented programming languages.

簡單的交互方式如下昔瞧,

Actor Model

在我們對傳統(tǒng)模型不斷壓榨之后指蚁,發(fā)現(xiàn)性能上去了一些,但是終究設(shè)計起來還是很吃力自晰,并且很難控制程序的穩(wěn)定性凝化,需要各種HA的幫助,保證(Web大型服務(wù))的可靠性酬荞,不down機搓劫。后來大家發(fā)現(xiàn)誕生于上世紀80年代的Erlang了,這種一切皆Actor袜蚕,面向并發(fā)的特性就是夢寐以求的。

Actor 模型中核心的是supervisor

A supervisor is responsible for starting, stopping and monitoring its child processes. The basic idea of a supervisor is that it should keep its child processes alive by restarting them when necessary.
有下面兩種方式保障高可靠性绢涡,All-For-One and One-For-One.

One-For-One
All-For-One

可以看到整個體系已經(jīng)不是傳統(tǒng)的基于流程的設(shè)計牲剃,完全的是一套去中心化的,需要supervisor負責下面actor(process)的狀態(tài)即可雄可,一個actor掛了凿傅,在創(chuàng)建一個即可。actor之間通過message的方式通信数苫。
這些被現(xiàn)在的后起之秀akka吸收進來聪舒,
Akka is an open-source toolkit and runtime simplifying the construction of concurrent and distributed applications on the JVM. Akka supports multiple programming models for concurrency, but it emphasizes actor-based concurrency, with inspiration drawn from Erlang.


這種優(yōu)美的方案,第一次看到還是在讀Kevin Kelly虐急,《失控》

“若干年內(nèi)利用幾百萬只低成本小機器人入侵一顆地外行星是可能的箱残。”他提議用一次性火箭發(fā)射一群鞋盒大小的太陽能推土機去入侵月球止吁。派出一支由無足輕重被辑、能力有限的機器人個體組成的軍隊,讓它們協(xié)同完成任務(wù)敬惦,并允許它們自由行動盼理。有些士兵會死掉,大多數(shù)會繼續(xù)工作俄删,并最終做出一些成績宏怔。
絕大多數(shù)的移動機器人會在著陸后的數(shù)月內(nèi)死去奏路。日復一日的嚴寒酷熱會使電腦芯片開裂失效。但就像螞蟻群落臊诊,單個的移動機器人是無足輕重的鸽粉。和“漫步者”相比,他們被發(fā)射到太空的費用要便宜上千倍妨猩;這樣一來潜叛,即便發(fā)射數(shù)百個小機器人,其成本也只是一個大機器人的零頭壶硅。

其實就是這個模型威兜,這種模型,可以有效自適應(yīng)庐椒,對于我們現(xiàn)在常見的大型系統(tǒng)特別高效椒舵。

我們在軟件設(shè)計上面的模型,其實可以看到在社會约谈,生活中也是可以映射的笔宿。

  • 政治 民主和集權(quán)
  • 經(jīng)濟 哈耶克和凱恩斯
  • 管理 自上而下還是扁平放權(quán)
  • 互聯(lián)網(wǎng) 開發(fā)平臺還是封閉平臺

個人意見,如有不對棱诱,請指正~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泼橘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子迈勋,更是在濱河造成了極大的恐慌炬灭,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,686評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件靡菇,死亡現(xiàn)場離奇詭異重归,居然都是意外死亡,警方通過查閱死者的電腦和手機厦凤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評論 3 385
  • 文/潘曉璐 我一進店門鼻吮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人较鼓,你說我怎么就攤上這事椎木。” “怎么了博烂?”我有些...
    開封第一講書人閱讀 158,160評論 0 348
  • 文/不壞的土叔 我叫張陵拓哺,是天一觀的道長。 經(jīng)常有香客問我脖母,道長士鸥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,736評論 1 284
  • 正文 為了忘掉前任谆级,我火速辦了婚禮烤礁,結(jié)果婚禮上讼积,老公的妹妹穿的比我還像新娘。我一直安慰自己脚仔,他們只是感情好勤众,可當我...
    茶點故事閱讀 65,847評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鲤脏,像睡著了一般们颜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猎醇,一...
    開封第一講書人閱讀 50,043評論 1 291
  • 那天窥突,我揣著相機與錄音,去河邊找鬼硫嘶。 笑死阻问,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的沦疾。 我是一名探鬼主播称近,決...
    沈念sama閱讀 39,129評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哮塞!你這毒婦竟也來了刨秆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,872評論 0 268
  • 序言:老撾萬榮一對情侶失蹤忆畅,失蹤者是張志新(化名)和其女友劉穎衡未,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邻眷,經(jīng)...
    沈念sama閱讀 44,318評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡眠屎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,645評論 2 327
  • 正文 我和宋清朗相戀三年剔交,在試婚紗的時候發(fā)現(xiàn)自己被綠了肆饶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,777評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡岖常,死狀恐怖驯镊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情竭鞍,我是刑警寧澤板惑,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站偎快,受9級特大地震影響冯乘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晒夹,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一裆馒、第九天 我趴在偏房一處隱蔽的房頂上張望姊氓。 院中可真熱鬧,春花似錦喷好、人聲如沸翔横。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽禾唁。三九已至,卻和暖如春无切,著一層夾襖步出監(jiān)牢的瞬間荡短,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工订雾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肢预,地道東北人。 一個月前我還...
    沈念sama閱讀 46,589評論 2 362
  • 正文 我出身青樓洼哎,卻偏偏與公主長得像烫映,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子噩峦,可洞房花燭夜當晚...
    茶點故事閱讀 43,687評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 過去十幾年CPU一直遵循著摩爾定律發(fā)展锭沟,單核頻率越來越快,但是最近這幾年识补,摩爾定律已然失效族淮,CPU的工藝制程和發(fā)熱...
    時見疏星閱讀 54,604評論 0 46
  • Akka是一個構(gòu)建在JVM上,基于Actor模型的的并發(fā)框架凭涂,為構(gòu)建伸縮性強祝辣,有彈性的響應(yīng)式并發(fā)應(yīng)用提高更好的平臺...
    三分青年閱讀 4,519評論 0 30
  • 背景介紹計算機CPU的計算速度提高(頻率的提高)是有限度的,我們能做的是放入多個計算核心切油。為了利用多核心的計算機蝙斜,...
    LeonalGU閱讀 11,186評論 0 7
  • 走過八月 音符寫夢 2014-8-31 8:48 今天是二零一四年八月三十一日。 每年的這個時候都要寫一段文字澎胡,告...
    如伊老師閱讀 270評論 0 2