程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> RedRabbit——基於BrokerPattern服務器框架

RedRabbit——基於BrokerPattern服務器框架

編輯:C++入門知識

RedRabbit

經典網游服務器架構

該圖省略了專門用途的

  • l LoginGate
  • l 由於
  • l GameServer

缺點是:

  • l 各個節點之間通過
  • l 各個節點往往都需要交互,這時就涉及到了誰連誰的問題,理解和設計架構的網絡拓撲也變得不太容易,相應的配置也會叫繁瑣,排錯的難度也較大。
  • l GameServer
  • l 由於該架構必須正確的配置連接關系,否則不能正常工作,對於運維而言也並不輕松。

 

討論完經典網游的服務器架構,今天的主題也呼之欲出了,但在此之前,先說一下該架構的核心思想,如果你讀過《面向模式的軟件架構》你也許想到了

  • l LookUp
  • l Route
  • l 注冊服務,

BrokerPattern

 

 

所以今天的主題是如何利用

RedRabbit

目標:

  • l 節點之間通信采用異步消息、回調模式
  • l Server
  • l C++/EPOOL
  • l 該框架能夠容易的構建單個區組的構架
  • l 該框架支持跨區組通信,這也是

這個框架的名字叫

FFRPC

首先介紹

  • l BrokerMaster
  • l BrokerSlave
  • l Client
  • l Service
  • l BrokerBridge

各個角色示意圖:

 

使用

http://www.cnblogs.com/zhiranok/archive/2013/06/06/ffrpc.html

RedRabbit

Gate

外網接入的

  • l Client
  • l Scene@0
  • l Client
  • l Gate

需要特別指出的是,

  • l ./app_redrabbit -gate gate@0 -broker tcp://127.0.0.1:10241 -gate_listen tcp://121.199.21.238:10242
  • l -gate 
  • l -gate_listen
  • l -brkoker

Scene

  • l 驗證
  • l 處理
  • l 處理
  • l Scene
  • l Scene
  • l Scene
  • l Scene

使用

http://ffown.sinaapp.com/flash/

修改名稱,點擊

該聊天室服務器啟動的參數是

./app_redrabbit -gate gate@0 -broker tcp://127.0.0.1:10241 -gate_listen tcp://121.199.21.238:10242 -python_path ./ -scene scene@0

該示例中把

對應的

 

 time.strftime( == =
@ffext.session_call(1= content == = ffext.reload()
        ffext.broadcast_msg_session(1, %

    (%= %1
 [session_key]
                        
                        


= %11, 1

    ffext.send_msg_session(session_id, 1, = %1=1, 1()                                                        

 

 

 

  • l Ffrpc
  • l 使用
  • l RedRabbit
  • l RedRabbit

啟動

./app_redrabbit  -broker tcp://127.0.0.1:10241

啟動

./app_redrabbit  -broker tcp://127.0.0.1:10242 -bridge_broker GroupA@tcp://127.0.0.1:10241

啟動

./app_redrabbit  -broker tcp://127.0.0.1:10242 -bridge_broker GroupB@tcp://127.0.0.1:10241

Ffext.bridge_call(‘GroupB’, cmd, msg, callback)

 項目源碼:

https://github.com/fanchy/RedRabbit

TODO:

構建跨服的

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved