1.项目背景
a.项目需求
最近在做一个关于机器人图像识别项目,有太菜原由。大大小小遇到不少的坑分享出来。大概需求:客户端(发送请求端)实时发送机器人巡检图片,通过Http接口协议方式将图片流按照Json格式发送到服务端。
b.组织架构及其运行环境
客户端(机器人实时采集的数据)发送图片流(秒钟3张左右)到服务端(图片分析识别)并调用识别算法,最后将识别后的图片返还给请求端。
2.问题概述
a.请求头未写导致response无返数据(Http报文格式问题)
b.本地文件无读写权限导致程序异退出
c.某些局部变量未初始化出现空指针、野指针进而导致程序异常Dump
d.数据越界异常
e.new allocator等动态申请动态内存未及时释放或者没有被释放与之对应的delete free
f.多线程文件访问导致内存溢出或者内存泄漏等问题
内存溢出:申而不足
内存泄漏:申而未还
g.请求响应延迟时间过长导致客户端未及时收到响应数据。
h.Libevent(基于Epoll封装而成的http高并发处理框架)版本过低(本质是低版本动态库存在缺陷问题==)
3.分析、处理过程
4.用到的技术
单一线程处理==>多线程
libevent高并发http处理框架
线程锁
请求客户端框架(curl)
5.学到内容
良好的心态是处理问题的关键所在,步步为营的策略是处理问题的强心剂;