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 ...
随机推荐
- Linux软链接硬链接的区别
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在 ...
- JS实现把一个页面层数据传递到另一个页面的两种方式
本博客整理了两种方式从一个页面层向另一个页面层传递参数. 一. 通过cookie方式 1. 传递cookie页面的html,此处命名为a.html 请输入用户名和密码: <input id=&q ...
- Tomcat的安全性
Web应用程序的一些内容是受限的,只有授权的用户在提供了正确的用户名和密码后才能查看他们,servlet技术支持通过配置部署 描述器(web.xml)来对这些内容进行访问控制,那么web容器是怎么样支 ...
- 第二章:排序算法 及其他 Java代码实现
目录 第二章:排序算法 及其他 Java代码实现 插入排序 归并排序 选择排序算法 冒泡排序 查找算法 习题 2.3.7 第二章:排序算法 及其他 Java代码实现 --算法导论(Introducti ...
- 分布式的几件小事(十一)分布式session如何实现
1.分布式会话是什么? 首先,我们知道浏览器有个cookie,在一段时间内这个cookie都存在,然后每次发请求过来都带上一个特殊的jsessionid cookie,就根据这个东西,在服务端可以维护 ...
- 帝国 cms 修改登录次数的两种方法
1.找到数据库表 注:我把这里的5改成50了. 2.找打e ==>> config ==>> config.php ==>> loginnum的5修改一下即可
- vue-resource 全局拦截器
项目中可能会添加超时登录的功能,因此根据tokenid 判断是否超时.如果token已过期,需要跳转至登录页面. 因此需要用到全局拦截器拦截返回的状态 //下边代码添加在main.js中 Vue.ht ...
- iOS去掉字符串中的HTML标签的方法
方法一.NSScanner去除标签 - (NSString *)removeTheHtmlFromString:(NSString *)htmlString { NSScanner * scanner ...
- 全年DDoS攻击分析|知道创宇云安全2018年度网络安全态势报告
*本报告由知道创宇云安全出品* 数据来源:知道创宇云防御平台 前言 2018年,网络安全领域暗流涌动,攻击趋势不断攀升,T级DDoS攻击多次爆发.数据泄露事件层出不穷.勒索软件大行其道.此外,随着我国 ...
- dumpe2fs Linux支持的文件系统
dumpe2fs (-bh)装置文件名 选项与参数: -b : 列出保留为坏轨的部分 -h : 仅列出superblock的数据,不会列出其他的区段内容 查看Linux支持的文件系统哪些支持: ls ...