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是什么?
- 使用SPP框架完成简单的Echo服务功能
- 如何使用Protobuf编写协议
- 在系统上安装protobuf用了较多的时间:依赖工具不全、工具版本低、编译的时候找不到相应版本的so文件等等。
- 学习了如何编写protobuf协议,序列化与反序列化等。
- 完成相应接口、客户端的编写。
- 如何使用Protobuf编写协议
总结
- 对于SPP框架的了解还很表面,需要了解其内部的实现才能掌握的更好,掌握好的话源码的阅读必不可少。
- Protobuf中嵌套message的使用,自己猜测着写了一些例子都没有完成编译,还需要查阅资料。
- 在学习过程中没有及时把导师说的一些知识、流程记录下来,如安装部署插件的流程,使得自己没有完成测试。好记性不如烂笔头,今后将及时做好笔记。
SPP框架的基本使用的更多相关文章
- 一次失败的PHP扩展开发之旅
一次失败的PHP扩展开发之旅 By warezhou 2014.11.19 缘起 经过不断的持续迭代.我们部门的协程版网络框架(CoSvrFrame)最终出炉了!这本来是件喜大普奔的事情.可是随着新业 ...
- 初识Spring框架实现IOC和DI(依赖注入)
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的, IoC是 ...
- 解读sencha touch移动框架的核心架构(二)
本来这行要详解Ext.extend的,但是发现网站有很详细的,那么就跳过去吧 为保持一个系列的分析,还是先搬过来吧,下章开始分析Ext4.0的新架构 在Java中,我们在实现继承的时候存在下面几个事实 ...
- 面试题汇总--数据储存/应用程序/UI控件/客户端的安全性与框架处理。。。
一 数据储存 1.如果后期需要增加数据库中的字段怎么实现,如果不使用 CoreData 呢?编写 SQL 语句来操作原来表中的字段1)增加表字段ALTER TABLE 表名 ADD COLUMN 字 ...
- Object Detection︱RCNN、faster-RCNN框架的浅读与延伸内容笔记
一.RCNN,fast-RCNN.faster-RCNN进化史 本节由CDA深度学习课堂,唐宇迪老师教课,非常感谢唐老师课程中的论文解读,很有帮助. . 1.Selective search 如何寻找 ...
- 空间金字塔池化(Spatial Pyramid Pooling, SPP)原理和代码实现(Pytorch)
想直接看公式的可跳至第三节 3.公式修正 一.为什么需要SPP 首先需要知道为什么会需要SPP. 我们都知道卷积神经网络(CNN)由卷积层和全连接层组成,其中卷积层对于输入数据的大小并没有要求,唯一对 ...
- 避免重复造轮子的UI自动化测试框架开发
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 旺财速啃H5框架之Bootstrap(五)
在上一篇<<旺财速啃H5框架之Bootstrap(四)>>做了基本的框架,<<旺财速啃H5框架之Bootstrap(二)>>篇里也大体认识了bootst ...
随机推荐
- Postgresql 监控sql之 pg_stat_statements模块
postgresql.confpg_stat_statements.max = 1000000pg_stat_statements.track = allpg_stat_statements.trac ...
- ABC134F Permutation Oddness
Problem Statement Let us define the oddness of a permutation $p = \{p_1, p_2, \dots, p_n\}$ of $\{1, ...
- python_0基础开始_day11
第十一节 一,函数名的第一类对象 函数名当作值,赋值给变量 print(函数名) 查看看书的内存地址 函数名可以当作容器中的元素 lis = []dic = {}def func(): prin ...
- EM 算法(三)-GMM
高斯混合模型 混合模型,顾名思义就是几个概率分布密度混合在一起,而高斯混合模型是最常见的混合模型: GMM,全称 Gaussian Mixture Model,中文名高斯混合模型,也就是由多个高斯分布 ...
- c# 简单打开关闭摄像头
const short WM_CAP = 1024; const int WM_CAP_DRIVER_CONNECT = WM_CAP + 10; const int WM_CAP_DRIVER_DI ...
- js获取7天之前的日期或者7天之后的日期
js获取7天之前的日期或者7天之后的日期(网上摘取的,记录自己使用) function fun_date(num) { var date1 = new Date(); //今天时间 var time1 ...
- Chrome OS 更新新版本可让Linux访问USB连接的Android设备
谷歌再次为Chrome OS带来了重大版本更新,使版本号达到了75.本次更新的一大亮点就是允许在Chrome OS上运行的Linux能够识别通过USB方式连接的Android设备,能够让用户使用Lin ...
- Chrome安装Axure插件axure-chrome-extension
用Chrome打开Axure发布的原型图打不开,提示需要安装axure-chrome-extension插件,如下图提示 下面记录一下安装过程,其实很简单,插件没必要从网上到处找,在你发布的路径下就有 ...
- linux主机之间的SSH链接
一.什么是SSH连接 SSH为Secyre Shell的缩写,SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.且SSH连接可以通过多种平台 ...
- macOS安装Python MySQLdb
macOS安装Python MySQLdb 0. 参考 Mac OS X - EnvironmentError: mysql_config not found 1. 背景 import MySQLdb ...