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 ...
随机推荐
- luogu P3320 [SDOI2015]寻宝游戏
大意:给定树, 要求维护一个集合, 支持增删点, 询问从集合中任取一点作为起点, 遍历完其他点后原路返回的最短长度. 集合中的点按$dfs$序排列后, 最短距离就为$dis(s_1,s_2)+...+ ...
- Chromium浏览器启动参数
序号 参数 说明1 --allow-outdated-plugins 不停用过期的插件.2 --allow-running-insecure-content 默认情况下,https 页面不允许从 ht ...
- [Next] 服务端渲染知识补充
渲染 渲染:就是将数据和模版组装成 html 客户端渲染 客户端渲染模式下,服务端把渲染的静态文件给到客户端,客户端拿到服务端发送过来的文件自己跑一遍 js,根据 JS 运行结果,生成相应 DOM,然 ...
- Java线程和进程
一.线程 1.什么是线程: 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.一个进程至少包含一个线程,也可以多个,线程属于进程. 2.Java中线程经历的四个 ...
- Linux shellcode sample
Linux shellcode sample HelloWorld.nasm ;HelloWorld.asm ;Author: Kul Subedi global _start section .te ...
- 一款完美代替微信小程序原生客服消息的工具:
一.设置:无需开发,多种回复(自动+人工) 自动回复形式有3种: 打开客服消息(用户只要和客服互动过一次,再次点击进入,会收到设置好的自动回复) 关键词回复(用户在小程序中回复某个关键词内容时,会 ...
- scala新版本学习(3)
1.REPL:读取->求值->打印->循环.Scala程序将输入的内容快速的编译成为字节码,然后字节码文件交给Java虚拟机进行执行. 2.val是值不可变,var值可变.在变量声明 ...
- 上传模板到SAP资源库
事物代码:SMW0 -WEB资源库 如果创建后上载本地模板报错,说明没有维护文件类型,需要在导航栏的设置里维护MIME类型添加新的文件后缀名 维护好后再上载模板 ABAP下载模板:以下FORM可以参考 ...
- electron localStorage的bug
在更新 electron 后有可能会读不到 localStorage 里的数据 推测是 localStorage 写在 Chromium 内核里,更新 electron 同时会更新 Chromium, ...
- ubuntu - 如何以root身份使用图形界面管理文件?
nautilus 是gnome的文件管理器,但是如果不是root账号下,权限受限,我们可以通过以下方式以root权限使用! 一,快捷键“ctrl+alt+t”,调出shell. 二,在shell中输入 ...