隨記(9)分布式開發流程

2021-09-07 23:25:54 字數 2222 閱讀 3684

程序可以相互連線,假設兩個普通程序ab,a程序出於某種原因終止,就會向程序b傳送乙個錯誤訊號,由於ab建立了連線,b又是普通程序,所以最後兩個程序一起掛掉

spawn建立的是普通程序,普通程序通過執行process_flag(trap_exit, true)變成系統程序,意思就是可以接受和處理錯誤訊號的程序,而不會隨與之相連線的程序退出

監視與連線相比,是單向的,a監視b,b程序掛了,會傳送「宕機」訊息給a, a不是系統程序也可以處理訊息,不會隨之退出

當前資料庫有wuxia_login(登入伺服器)、wuxia_s1(一服)、wuxia_s2*(二服)、wuxia_db(模板資料)、wuxia_dt(資料庫後台管理**的結構)

當前有資料庫的伺服器:

當前分布式資料庫結構都相同,但是資料有所不同,例如:

登入流程

客戶端向gate閘道器伺服器傳送乙個tcp連線請求,就啟動了乙個玩家程序,這個程序中儲存了state狀態字(結構如下),接著向web(login)伺服器獲取token,向login伺服器檢測token,完成後向狀態字中儲存的伺服器sid傳送登入請求(也把自己的玩家程序號傳送給伺服器節點)

%%--

---客戶端狀態

-record

(client_state,

).

伺服器:乙個大型的監督樹,管理多個程序,處理大型服務,繫結資料庫,分布式則繫結不同資料庫??

簽名流程

);報錯看logger伺服器,列印的,處在哪個伺服器就檢視哪個

read查詢單條記錄,一般是返回列表或者空列表,這邊架構有返回記錄,沒有返回null

優化:一些異常判斷最好在函式開頭做好判斷處理,有問題就拋異常,不要多層巢狀在if裡面,如下:

api_init (playerid, nickname, ismale)

->%%

----

-賬號是否存在(是否有這條記錄)

player =

get_player

(playerid),if

player =/=

null

->

ok;true

->

exit

(player_id_error)

end,%%

----

-是否初始化(nickname是否為空)

if player #player.nickname == "" ->

ok;true

->

exit

(already_init)

end,%%

----

-檢測名字長度 %%

----

-檢測重複 %%

----

-檢測遮蔽字

player_1、player_2、player_3(mod_uets下,伺服器初始化,遍歷player表載入進ets)

遠端呼叫節點(rp)返回格式 [error:reason]

case

?player_id_trace_call

(state, playerid, mod_test_player, api_init,

[playerid, nickname, ismale]

) of }

->;}

->;}

->;-

>

; _ -

>

先開發功能,再去考慮由哪個伺服器或者程序呼叫(取決於哪個資料庫合適,因為分布式下)

當前伺服器架構下的所有路由介面返回都是二元組

1 1分布式學習流程

由於本人最近在學習分布式,故把自己從hadoop nutch spark hive搭建過程做為筆記記錄下與大家學習交流 hadoop原本來自於谷歌一款名為mapreduce的程式設計模型包。hadoop最初只與網頁索引有關,開始的時候是 nutch 的乙個子專案,迅速發展成為分析大資料的領先平台。h...

分布式 2分布式事務

分布式 1概述cap和base 分布式 2分布式事務 分布式 3分布式一致性演算法 分布式 4集群 分布式 5服務限流演算法 分布式 6分布式id 分布式 7效能壓測 分布式 8日誌鏈路跟蹤 分布式 9分布式鎖 redis鎖的幾種實現 參考 分布式系統間各種問題 宕機 網路不穩定 本地事務無法滿足需...

分布式隨筆1 分布式概述

分布式,好寬泛的話題,來來咱扯兩句。你乙個人再強壯,也扛不了100袋大公尺,單機的資源也很有限,大 的大資料量 高併發以及各種業務需求 童鞋們的web應用,伺服器 rdb mq 服務 快取以及各類基礎設施,更別說還有安全 大資料方面的需求 於是,我們常見的面向服務的dubbo springcloud...