分布式網關服務器,fooking 0.1.0 發布

jopen 9年前發布 | 6K 次閱讀 fooking

fooking是一個分布式網關服務器,主要用于承載客戶端連接,將客戶端請求轉發到后端邏輯服務器,然后把邏輯服務器返回的結果轉發到客戶端。他 類似Nginx,使用Nginx + FastCGI Server(如:FPM, etc..)構建Web服務器,同時可以使用Fooking + FastCGI Server(如:FPM, etc..)構建Socket服務器.

特性

1 動態網關添加.
2 每個客戶端唯一SessionID.
3 組播(類似redis的pub/sub).
4 服務器狀態監控.
5 客戶端事件通知(如:新連接、關閉連接).
6 后端無語言限制(php, python, go, nodejs, etc...).
7 自定義消息協議.
8 后端長連接維持.

客戶端協議

    這個是指客戶端與fooking的通信協議,默認4字節數據大小(大端模式)和數據,同時你還可以使用Lua自定義協議。

后端協議

    這是指fooking與后端邏輯服務器通信協議,這個使用FastCGI協議,后端可以使用任何語言來創建FastCGI服務器.
這個協議非常簡單,詳見協議說明: http://www.fastcgi.com/drupal/node/6?q=node/22

使用說明

    下面展示了fooking的使用,用例是聊天室,源代碼位于example/chat目錄下

  • 第一步(下載和編譯)
    git clone https://github.com/scgywx/fooking.git
    cd {$FOOKING_PATH}
    make

  •  第二步(啟動Router)
    cd src
    ./fooking ../router.lua

  •  第三步(啟動Gateway)
    ./fooking ../config.lua

  • 第四步(啟動FastCGI服務器, 如:fpm) service php-fpm start(如果已經啟動,請忽略此步驟)

  •  第五步(測試) 修改example/chat/index.html文件的Websocket的服務器IP和端口(查找ws://)
    然后用瀏覽器打開index.html即可

架構圖

分布式網關服務器,fooking 0.1.0 發布

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!