相關(guān)介紹文章:
《『設(shè)計(jì)』Slithice 分布式架構(gòu)設(shè)計(jì)-支持一體式開發(fā),分布式發(fā)布》
《『集群』001 Slithice 服務(wù)器集群 概述》
《『集群』002 Slithice 集群配置工具 的使用》
《『集群』003 Slithice 最簡分布式(多個(gè)客戶端,一個(gè)獨(dú)立服務(wù)端)》
《『集群』004 Slithice 集群分布式(多個(gè)客戶端,基于中央服務(wù)器的多個(gè)集群服務(wù)端)》
《『集群』005 Slithice 基于 集群 的 自動(dòng)容錯(cuò)》
《『集群』006 Slithice 后期改進(jìn) 和 Slithice可能存在的BUG》
《『集群』007 如何測試Slithice源代碼》
版本庫:


Slithice是做什么的
Slithice是一個(gè) 跨平臺(tái) 的 分布式架構(gòu) 框架;
旨在簡化 分布式開發(fā) 的開發(fā)難度,節(jié)省 開發(fā)成本 和 后期維護(hù)成本;
并提供 穩(wěn)定 的分布式容錯(cuò)機(jī)制;
其 界面化的集群配置,一體式開發(fā)&分布式發(fā)布,插件覆蓋,容錯(cuò)調(diào)度 是Slithice最大的亮點(diǎn);
Slithice提供 任意 程序集,任意命名空間,任意類名 的 擴(kuò)展,包括:
配置數(shù)據(jù)獲取方式的擴(kuò)展(從 什么地方 找尋 服務(wù)器配置數(shù)據(jù));
調(diào)度方式的擴(kuò)展(比如WCF,Socket,WebService等);
功能插件的擴(kuò)展(這個(gè)就是 最重要的了);
Ps. Slithice并非 只 針對(duì) 集群服務(wù)器,同時(shí)Slithice也支持 最簡單的 一個(gè)服務(wù)端&多個(gè)客戶端 的 最簡分布式;
Slithice名字的由來
Slithice是DotA故事中,娜迦海妖 的名字 —— 只是因?yàn)?半年前 練習(xí) 小娜迦,所以 才 選取了這個(gè)名字;
Slithice的版本演化
之前時(shí)間,Slithice的 架構(gòu)設(shè)想 閃現(xiàn)于腦海,于是 整理了最簡單的 設(shè)計(jì)手稿 和 實(shí)現(xiàn)目標(biāo)
2013-02-10PRoject版本庫正式動(dòng)工 取名Slithice 2013累計(jì)耗時(shí)20小時(shí),完成 先行版Demo;
2013-06-10Laura版本庫 項(xiàng)目遷移 維持原名累計(jì)耗時(shí)60小時(shí),完成 現(xiàn)在版本;
Slithice的目標(biāo)
Slithice的 基本目標(biāo) 就是 簡化 集群分布式 開發(fā);
Slithice的 終極目標(biāo) 就是 跨平臺(tái):
服務(wù)端 可以用.Net、java等開發(fā);
客戶端 可以用.Net-PC、.Net-WinCE、.Net-WinPhone、Java、Android、iphone等開發(fā);
—— 想必,這是 極好的;
順帶提一下Slithice的序列化
Slithice支持.Net自帶的序列化(不能跨WinCE等平臺(tái)) 和Laura.Serialization序列化 —— 沒有使用架構(gòu);
Laura.Serialization是 作者順手 累計(jì)30小時(shí) 完成的 一個(gè) 序列化算法;
Laura.Serialization支持.Net-PC、.Net-WinCE兩個(gè)平臺(tái);
Laura.Serialization序列化的byte[]結(jié)構(gòu)分為:類型區(qū),數(shù)據(jù)區(qū),結(jié)構(gòu)區(qū)
Laura.Serialization設(shè)計(jì)思想,只要對(duì) 類型區(qū) 進(jìn)行控制:基本就能實(shí)現(xiàn) 跨Java,Android等 其他平臺(tái);
Laura.Serialization作者順手5小時(shí),寫了一個(gè)Json序列化算法(用 字符串 跨平臺(tái) 顯得容易很多)
Slithice集群配置工具 主界面

在測試Slithice的Demo中,我配置了7個(gè)服務(wù)端:
一個(gè)WCF的 中央服務(wù)端;
兩個(gè)WCF的 成員服務(wù)端(私有–前面有一個(gè)棕色皮包的圖標(biāo));
兩個(gè)Socket的 成員服務(wù)端;
兩個(gè)WebService的 成員服務(wù)端;
Slithice集群配置工具 配置界面

我們看到的是WebService_002的 配置
>藍(lán)色區(qū)域 里面的 是 當(dāng)前服務(wù)端 自己可以處理的Action;
>紅色區(qū)域 里面的 是 當(dāng)前服務(wù)端 自己不能處理,但是 可以 調(diào)度出去的Action;
>紫色區(qū)域 里面的 是 當(dāng)前服務(wù)器 可以調(diào)度 的 子服務(wù)器(就是 兩個(gè)WCF服務(wù));
>按照Slithice的設(shè)計(jì)思想:能夠自己處理的任務(wù),除了強(qiáng)制指定任務(wù)的服務(wù)器外,基本都會(huì)自己處理,自己處理不了的,才會(huì)進(jìn)行調(diào)度;

上面 展示的 是WebService_002可以調(diào)度 出去的Action;
>TestAction_001、TestAction_002兩個(gè) 子服務(wù)器 都可以 調(diào)度;
>TestAction_1_001、TestAction_1_002只有ConsoleWCFService_001可以調(diào)度;
>這里,做了一個(gè)BUG配置:我們將Slithice_ResetService(重置服務(wù)器) 的功能 沒有 勾選為自己處理,結(jié)果 重置服務(wù)器 的功能 也將會(huì) 被調(diào)度;(Slithice內(nèi)置的Action插件 并沒有 特權(quán))
>調(diào)度幾率:在配置 服務(wù)端 時(shí)候,可以按照 服務(wù)端 所在的 硬件設(shè)備 的處理能力 設(shè)置 這個(gè)值,默認(rèn)100000;當(dāng) 對(duì)一個(gè) 服務(wù)端的 調(diào)度 出現(xiàn)錯(cuò)誤時(shí),該值 會(huì)-1,調(diào)度成功時(shí),該值 會(huì)+1—— 調(diào)度幾率,決定了 同一個(gè)任務(wù)可以多個(gè)調(diào)度 時(shí)的 調(diào)度幾率;
Slithice集群配置工具 插件覆蓋界面


上面 展示的 是 插件覆蓋界面;
>ConsoleCenterService 具有 幾個(gè) 自定義Action;
>其中,TestAction_Center_001 有兩個(gè)版本, 他們是 同鍵值的,但是 最終被啟用 的是優(yōu)先級(jí) 更高的 100010;
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注