xingo分布式游戲服務(wù)器開(kāi)發(fā)框架
xingo是免費(fèi)、開(kāi)源、可定制、可擴(kuò)展、節(jié)點(diǎn)支持“熱更新”的高性能分布式服務(wù)器開(kāi)發(fā)框架,采用golang語(yǔ)言開(kāi)發(fā),天生攜帶高并發(fā)場(chǎng)景的處理基因,繼承了golang語(yǔ)言本身的各種優(yōu)點(diǎn),開(kāi)發(fā)簡(jiǎn)單易上手并且功能強(qiáng)大。它主要實(shí)現(xiàn)了高性能的異步網(wǎng)絡(luò)庫(kù),分布式節(jié)點(diǎn)間的高性能rpc通信,日志管理,數(shù)據(jù)庫(kù)支持(暫時(shí)只支持mongodb),goroutine安全的定時(shí)器,telnet在線(xiàn)服務(wù)器調(diào)試工具等,可用的開(kāi)發(fā)場(chǎng)景包括但不局限于IM即時(shí)通訊服務(wù)器,游戲服務(wù)器(已有多款公司級(jí)別的項(xiàng)目選擇了xingo)等可以節(jié)省大量游戲開(kāi)發(fā)時(shí)間,讓游戲開(kāi)發(fā)人員可以將主要精力放到游戲玩法和游戲邏輯上。真正實(shí)現(xiàn)了修改配置文件就可以搭建自定義的分布式服務(wù)器架構(gòu)。
優(yōu)勢(shì)特點(diǎn):
1) 開(kāi)發(fā)效率高
2) 支持自定義的分布式架構(gòu),方便橫向擴(kuò)展節(jié)點(diǎn),理論上只要有足夠的物理機(jī)器,沒(méi)有承載上限
3) 支持自定義通信協(xié)議
4) 分布式節(jié)點(diǎn)自動(dòng)發(fā)現(xiàn),自動(dòng)重連
5) worker pool工作線(xiàn)程池
6) telnet在線(xiàn)服務(wù)調(diào)試工具(使用方便擴(kuò)展簡(jiǎn)單)
7) 內(nèi)置mongodb數(shù)據(jù)庫(kù)支持
8)goroutine安全的定時(shí)器實(shí)現(xiàn)
示例配置:
{
"master":{"host": "192.168.2.225","rootport":9999},
"servers":{
"gate2":{"host": "192.168.2.225", "rootport":10000,"name":"gate2", "module": "gate", "log": "gate2.log"},
"gate1":{"host": "192.168.2.225", "rootport":10001,"name":"gate1", "module": "gate", "log": "gate1.log"},
"net1":{"host": "192.168.2.225", "netport":11009,"name":"net1","remotes":["gate2", "gate1"],
"module": "net", "log": "net.log"},
"net2":{"host": "192.168.2.225", "netport":11010,"name":"net2","remotes":["gate2", "gate1"],
"module": "net", "log": "net.log"},
"net3":{"host": "192.168.2.225", "netport":11011,"name":"net3","remotes":["gate2", "gate1"],
"module": "net", "log": "net.log"},
"net4":{"host": "192.168.2.225", "netport":11012,"name":"net4","remotes":["gate2", "gate1"],
"module": "net", "log": "net.log"},
"admin":{"host": "192.168.2.225", "remotes":["gate2", "gate1"], "name":"admin", "module": "admin",
"http": [8888, "/static"]},
"game1":{"host": "192.168.2.225", "remotes":["gate2", "gate1"], "name":"game1", "module": "game"}
}
}
示例架構(gòu)圖:
