入職兩天
Day1、Day2:
- 學習SPP框架
- SPP是什么?
SPP提供了一系列的基礎功能,是一個通用的網絡服務器運行框架。主要由proxy,worker,controller三個模塊組成。它提供API給開發人員,因此只需要關心業務邏輯的處理,進行插件開發。直接調用其暴露出來的接口開發可以節省開發時間,提高效率。 - SPP的運作流程?
流程總結:Client發送請求會由proxy進行接收(壓入共享內存消息隊列中),然后通過插件配置,路由到相應的worker組。worker組調用邏輯接口進行處理。controller主要是進行統計、監控的任務,proxy和controller會定期向它發送正在運行的各個子進程的狀態信息,controller正是通過監控這些信息來管理各個子進程 - 如何使用SPP提供的接口?
這兩天主要學習了幾個接口:
spp_handle_init:業務啟動前做一些初始化動作。
spp_handle_input:對包的完整性、合法性進行檢查,proxy必須實現,必須有選擇的過濾一些不合法、無效的包。
spp_handle_process:實際的業務處理,worker必須實現它。對應於實際開發時候所需要的功能做不同的實現。
spp_handle_finit和spp_handle_route:這兩個接口學習過程中比較少看到,因此了解較少。前者主要用來做反初始化的工作,例如業務處理完之后銷毀掉worker進程,可以避免不必要的資源消耗。后者是將接入的請求路由到相應的worker組中。
- SPP是什么?
- 使用SPP框架完成簡單的Echo服務功能
- 如何使用Protobuf編寫協議
- 在系統上安裝protobuf用了較多的時間:依賴工具不全、工具版本低、編譯的時候找不到相應版本的so文件等等。
- 學習了如何編寫protobuf協議,序列化與反序列化等。
- 完成相應接口、客戶端的編寫。
- 如何使用Protobuf編寫協議
總結
- 對於SPP框架的了解還很表面,需要了解其內部的實現才能掌握的更好,掌握好的話源碼的閱讀必不可少。
- Protobuf中嵌套message的使用,自己猜測着寫了一些例子都沒有完成編譯,還需要查閱資料。
- 在學習過程中沒有及時把導師說的一些知識、流程記錄下來,如安裝部署插件的流程,使得自己沒有完成測試。好記性不如爛筆頭,今后將及時做好筆記。