單一世界架構(gòu)初探(11)主動模式

主動模式在大型服務(wù)系統(tǒng)中鲫尊,是完全必須的。在設(shè)計模式中沦偎,有個監(jiān)聽模式可以概括這種情況疫向,而不完全如此。在監(jiān)聽模式中豪嚎,往往需要先往目標(biāo)注冊搔驼,然后 根據(jù)目標(biāo)的狀態(tài)變化,由目標(biāo)通知監(jiān)聽者侈询。但在這里舌涨,監(jiān)聽者卻并不知道需要監(jiān)聽哪些東西。也就是說監(jiān)聽者和被監(jiān)聽者之間往往沒有固定和必然的聯(lián)系扔字。

我 們可以想象泼菌,當(dāng)一個人進入白骨荒野谍肤,這是個眼界很開闊的地圖,對于你的進入哗伯,已經(jīng)在白骨荒野的人應(yīng)該可以看到你的存在荒揣,而事實上,他們并不會向你注冊他是 否監(jiān)聽你焊刹,你也不需要監(jiān)聽他的存在系任。之所以我們舉這個例子,是因為白骨荒野比較大虐块。任何一個進入這個地區(qū)的人來說俩滥,他不可能知道所有在這個地區(qū)的人,注冊 就無從說起了贺奠。

這是個很矛盾的事情霜旧,因為對于你和一個你并不知道的人來說,你們兩個的關(guān)系并不是由你們自己決定的儡率,而是由你們同處于一個視野這個事實決定的挂据。因此我們需要一個管理器,負(fù)責(zé)模擬生成客觀世界需要生成的事實儿普,就像進入視野這種事情崎逃。我們在前面的討論過程,有個很重要的原則眉孩,就是減少關(guān)聯(lián)性个绍,比如N個實體之間,關(guān)聯(lián)性將為(N-1)^2浪汪,如果存在一個管理器巴柿,那么實體之間只有N個關(guān)聯(lián)。

我們假設(shè)白骨荒野有個事件管理器死遭,那么當(dāng)所有進入白骨荒野的人广恢,都會向管理器注冊,由管理器判斷并且產(chǎn)生事件殃姓。我感覺這個模式有些問題袁波,但還沒有仔細(xì)研究。從理論上來說蜗侈,應(yīng)該具有很好的優(yōu)點篷牌,很簡單,這種方式減少了關(guān)聯(lián)度踏幻,必然減少由此引起的計算量枷颊,可同樣會導(dǎo)致復(fù)雜度。


我們在前面討論過數(shù)據(jù)抽象的事情,試圖將所有的實體抽象并表格化夭苗,同時還會每個字段綁定一個函數(shù)信卡,這個函數(shù)可能會被外界驅(qū)動,比如客戶端的鍵盤操作题造。當(dāng)一個角色行走時傍菇,那么行走函數(shù)會被調(diào)用,新的坐標(biāo)可以通過這個函數(shù)通知給管理器界赔,這種方法讓我們在很高的實時性以及很小的粒度上獲取主動性丢习。


管理器的存在是個很麻煩的事情,因為他具備全局屬性淮悼,給我們試圖將所有局部化的理論帶來很大的顛覆咐低,同樣的,管理器為我們提供方便的主動模式袜腥。


考慮暴風(fēng)城和閃金鎮(zhèn)2個分區(qū)见擦,我們無法假設(shè)他們具備同一個管理器,因為這樣會導(dǎo)致我們必須假設(shè)西部荒野也使用這個管理器羹令,以致于整個世界都是用相同的管理器鲤屡。為了更變態(tài)一點,我們將白骨荒野切割成2個分區(qū)AB特恬,在分區(qū)的邊緣各站1個人P1/P2执俩,顯然徐钠,管理器模式無法解決這種情況癌刽,因為一個分區(qū)的管理器無法知道另外一個分區(qū)的信息。P1就站在P2面前尝丐,卻不知道P2在轉(zhuǎn)身显拜,顯然很荒謬。


這里有2個方案爹袁,方案1是讓分區(qū)管理器將某些事件向周圍進行廣播远荠,需要廣播哪些事件,由分區(qū)管理器決定失息,這個方案使得管理器是扁平的譬淳,但可能導(dǎo)致廣播風(fēng)暴。

方案2是在分區(qū)管理器之上盹兢,建立一個公共的父管理器邻梆,由父管理器負(fù)責(zé)決定向哪些分區(qū)發(fā)播哪些事件。這個方案可以降低事件廣播的量绎秒,但管理器就比較多浦妄,呈樹狀結(jié)構(gòu)。個人感覺方案2更具競爭力,可以更多架構(gòu)上的好處剂娄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蠢涝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子阅懦,更是在濱河造成了極大的恐慌和二,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耳胎,死亡現(xiàn)場離奇詭異儿咱,居然都是意外死亡,警方通過查閱死者的電腦和手機场晶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門混埠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诗轻,你說我怎么就攤上這事钳宪。” “怎么了扳炬?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵吏颖,是天一觀的道長。 經(jīng)常有香客問我恨樟,道長半醉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任劝术,我火速辦了婚禮缩多,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘养晋。我一直安慰自己衬吆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布绳泉。 她就那樣靜靜地躺著逊抡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪零酪。 梳的紋絲不亂的頭發(fā)上冒嫡,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音四苇,去河邊找鬼孝凌。 笑死,一個胖子當(dāng)著我的面吹牛蛔琅,可吹牛的內(nèi)容都是我干的胎许。 我是一名探鬼主播峻呛,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼辜窑!你這毒婦竟也來了钩述?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤穆碎,失蹤者是張志新(化名)和其女友劉穎牙勘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體所禀,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡方面,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了色徘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恭金。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖褂策,靈堂內(nèi)的尸體忽然破棺而出横腿,到底是詐尸還是另有隱情,我是刑警寧澤斤寂,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布耿焊,位于F島的核電站,受9級特大地震影響遍搞,放射性物質(zhì)發(fā)生泄漏罗侯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一溪猿、第九天 我趴在偏房一處隱蔽的房頂上張望钩杰。 院中可真熱鬧,春花似錦再愈、人聲如沸榜苫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至媳荒,卻和暖如春抗悍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钳枕。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工缴渊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鱼炒。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓衔沼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子指蚁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

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