SPP框架的基本使用

入职两天

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框架完成简单的Echo服务功能
    • 如何使用Protobuf编写协议
      1. 在系统上安装protobuf用了较多的时间:依赖工具不全、工具版本低、编译的时候找不到相应版本的so文件等等。
      2. 学习了如何编写protobuf协议,序列化与反序列化等。
      3. 完成相应接口、客户端的编写。

总结

  • 对于SPP框架的了解还很表面,需要了解其内部的实现才能掌握的更好,掌握好的话源码的阅读必不可少。
  • Protobuf中嵌套message的使用,自己猜测着写了一些例子都没有完成编译,还需要查阅资料。
  • 在学习过程中没有及时把导师说的一些知识、流程记录下来,如安装部署插件的流程,使得自己没有完成测试。好记性不如烂笔头,今后将及时做好笔记。
posted @ 2018-07-15 20:56  _NewMan  阅读(3856)  评论(0编辑  收藏  举报