邹雷
C/C++高级软件工程师
13年经验
2024-07-01
个人介绍:☆ 精通C/C++,Linux、windows环境下C/C++编程,了解java,C#,go语言;
☆ 精通常用算法,数据结构原理及其实现,熟悉STL以及相关源码;
☆ 掌握数据库oracle常用操作,精通Mysql,熟悉SqlServer, DB2等;
☆ 精通进程间通信,多线程,Socket原理;
☆ 了解VS等IDE集成环境,Windows/linux核心编程,ocx控件开发;
☆ 熟悉TCP/IP、UDP、HTTP/HTTPS等协议原理、流媒体相关知识,QT/OpenCv图像编程,shell编程;
☆ 精通C/C++高性能服务器开发,熟悉网络通讯程序开发。
☆ 熟练使用多种消息中间件:redis,kafka,MQ, protobuf, mongodb等。
项目经验:webservice网关以及平台富媒体网关:
前置模块:采用nginx
前置模块是系统的接入模块,该模块通过ngnix的http模块处理相应的客户接入数据,本模块主要包含的功能有:协议校验、协议过滤、进程挂掉拉起、http协议解析、http响应
业务服务模块
处理前置模块转发过来的数据。http前置发送给本模块的数据已经是被解析的有效http数据。在本模块中主要是对数据进行协议的适配和解析(标准协议或用户自定义协议),然后做相应的业务处理,如:校验、写日志等。
发送短信业务:
若在本模块处理失败(受理失败),则给http前置发送响应数据。若受理成功,则会在给http前置发送响应的同时,会将完好的mt数据发送给消息中间件。
查询业务:
若在本模块处理失败(受理失败),则给http前置发送响应数 据。若受理成功,查询redis 或者kafka或者文件,将查询出的数据发送给http前置。本模块主要包含的功能有:
协议适配、内容校验、与消息中间件交互、与数据库交互、与前置http进程通信
MO/RPT推送服务进程
该进程取读取redis中的数据,以http请求的方式将数据推送至用户web服务器
与网关通讯服务模块:
本模块包含的功能有:订阅消息中间件MT消息,并将MT通过内部自定义协议以TCP方式将消息发送至网关
从网关取MO/RPT消息,并将MO/RPT消息存储至内存数据库
灾备切换
灾备切换主要分为两种,第一种是多机房部署场景下的灾备切换,第二种是机房内部的 灾备切换。
性能优化:
1.系统整体架构的合理性,针对业务处理需求(进程,线程,队列的设计);2.内存操作,内存的创建和销毁,内存的拷贝等;3.锁操作;4.数据存储以及读取的优化,数据库表设计、文件、中间件;5.算法合理性的设计;6.硬件以及部署优化;
7.负责均衡,集群,云,内核参数调优
☆ 通信服务平台:
项目描述:
该平台底层网络通信模块采用IOCP模型以及epoll模型来兼容windows以及linux平台,该模型具有高性能大容量SOCKET并发。
该平台分为2层:网络通信服务层和应用层。
网络通信服务层负责socket通信、数据回调等工作,服务器对设备终端数据的采集以及服务器接收pc客户指令的下发。服务器与设备终端为长连接,与pc客户连接为短连接。
Server:
1、根据服务器CPU数量创建一定的工作线程,服务器启动,主线程启动监听,工作线程处于等待状态,当有请求进行连接时,工作线程轮流处理请求。
2、服务器对设备终端数据的采集:通过终端发出的心跳包来确定终端是否处于连接状态;通过服务器发出的请求帧得到设备终端的响应帧。
3、服务器与pc客户的通信,对客户数据指令的接收与发送。
应用层:
应用层主要负责对各种协议的解析及对数据的处理:pc客户下发指令根据不同的协议组包成不同的请求帧,同时对设备终端数据发出的响应帧进行拆包。总的来说就是对接收和发送数据的处理。然后利用ADO连接数据库将数据存入到对应的表中。
负责整个服务器架构的搭建以及各个功能模块的设计与部分重要功能代码的编写。
技 能:
C++