LollipopGo:DB反向代理服務(wù)器

DB反向代理服務(wù)器

游戲服務(wù)器開發(fā)過程中铃辖,整個服務(wù)器的架構(gòu)設(shè)計(jì)對于項(xiàng)目的影響是至關(guān)重要的,其中包括登錄流程窖梁,消息機(jī)制流程赘风,消息加密流程 內(nèi)部服務(wù)器消息跳轉(zhuǎn),定時任務(wù)等纵刘。 centos 系統(tǒng)為例邀窃,給大家梳理下游戲架構(gòu)的基礎(chǔ)設(shè)計(jì)思想。

如何設(shè)計(jì)

1. DB數(shù)據(jù)庫反向代理假哎,屬于內(nèi)網(wǎng)權(quán)限訪問瞬捕,與外網(wǎng)隔離
2. 提供功能主要是處理數(shù)據(jù)庫的讀寫等鞍历,例如 登錄服務(wù)器的反向代理,主要是用戶的信息的校驗(yàn)肪虎。而游戲組的DB
反向代理劣砍,是提供游戲數(shù)據(jù)的保存等,所以正常情況下扇救,DB反向代理在每組服務(wù)器組中是2組DB反向代理服務(wù)器刑枝。
3. DB方向代理還有一個功能,可以動態(tài)切換不同數(shù)據(jù)庫:redis迅腔,mongo装畅,mysql等
4. DB反向代理服務(wù)器開發(fā)人員只提供接口即可
5. DB反向代理服務(wù)器與所有的服務(wù)器通信都采用異步RPC通信

流程分析

1. 整個流程都比較簡單,主要是提供數(shù)據(jù)接口服務(wù)
2. 建議每組物理機(jī)上部署2組DB數(shù)據(jù)庫反向代理钾挟,主要是針對不等同的業(yè)務(wù)邏輯
3. 建議在處理數(shù)據(jù)時候洁灵,保證處理數(shù)據(jù)的頻率饱岸,防止惡意訪問

實(shí)例代碼

// 主函數(shù)
func main()  {
    conf.InitConfig()
    Mysyl_DB.Init()
    MainListener(conf.GetConfig().Server.WSAddr)
}

// 監(jiān)聽
func MainListener(strport string) {
    rpcRegister()
    tcpAddr, err := net.ResolveTCPAddr("tcp", ":"+strport)
    checkError(err)
    Listener, err := net.ListenTCP("tcp", tcpAddr)
    checkError(err)

    for {
        defer func() {
            if err := recover(); err != nil {
                strerr := fmt.Sprintf("%s", err)
                fmt.Println("異常捕獲:", strerr)
            }
        }()
        conn, err := Listener.Accept()
        if err != nil {
            fmt.Fprint(os.Stderr, "accept err: %s", err.Error())
            continue
        }
        go jsonrpc.ServeConn(conn)
    }
}

// RPC注冊
func rpcRegister() {
    _ = rpc.Register(new(ac_game.AcRPC))
    _ = rpc.Register(new(cf_game.CfRPC))
    _ = rpc.Register(new(game.GameRPC))
}

// RPC獲取登錄數(shù)據(jù)的例子
func (this *AcRPC) GetUserLogin(data *twlib_proto.C2SUserLogin, reply *twlib_user.UserSt) error {
    sql := "select id,avatar,name,sex,lev,areacur from ac_account where loginname='" + data.AccountName + "' AND loginpw='" + data.AccountPw + "'"
    fmt.Println(sql)
    rows, err := GetAcGameConn().Query(sql)
    defer rows.Close()
    if err != nil {
        return err
    }
    recliner := twlib_user.UserSt{}
    for rows.Next() {
        rows.Scan(&recliner.RoleUid, &recliner.RoleAvatar, &recliner.RoleName, &recliner.RoleSex, &recliner.RoleLev,
            &recliner.RoleAvatar)
        recliner.ChannelId, _ = strconv.Atoi(recliner.LatestArea)
    }
    fmt.Println(recliner)
    recliner.ServerList = this.GetAreacur(0, nil)
    *reply = recliner
    return nil
}
    

注意事項(xiàng)

  1. 反向代理服務(wù)器啟動順序
以LollipopGo分布式游戲架構(gòu)為例:
1. DB反向代理服務(wù)器一定是在所有服務(wù)器前啟動掺出,主要是注冊到反向代理服務(wù)器
2. 數(shù)據(jù)庫可以采用集群形式部署,具體看實(shí)際項(xiàng)目苫费,如果有不懂的可以直接聯(lián)系我
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載汤锨,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末百框,一起剝皮案震驚了整個濱河市闲礼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铐维,老刑警劉巖柬泽,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嫁蛇,居然都是意外死亡锨并,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門睬棚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來第煮,“玉大人,你說我怎么就攤上這事抑党“” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵底靠,是天一觀的道長害晦。 經(jīng)常有香客問我,道長暑中,這世上最難降的妖魔是什么壹瘟? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任苟呐,我火速辦了婚禮,結(jié)果婚禮上俐筋,老公的妹妹穿的比我還像新娘牵素。我一直安慰自己,他們只是感情好澄者,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布笆呆。 她就那樣靜靜地躺著,像睡著了一般粱挡。 火紅的嫁衣襯著肌膚如雪赠幕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天询筏,我揣著相機(jī)與錄音榕堰,去河邊找鬼。 笑死嫌套,一個胖子當(dāng)著我的面吹牛逆屡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播踱讨,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼魏蔗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了痹筛?” 一聲冷哼從身側(cè)響起莺治,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帚稠,沒想到半個月后谣旁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滋早,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年榄审,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馆衔。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡瘟判,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出角溃,到底是詐尸還是另有隱情拷获,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布减细,位于F島的核電站匆瓜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜驮吱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一茧妒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧左冬,春花似錦桐筏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至除破,卻和暖如春牧氮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瑰枫。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工踱葛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人光坝。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓尸诽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親教馆。 傳聞我的和親對象是個殘疾皇子逊谋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348