TrendDB高性能实时数据库
开发环境:Windows+Visual studio 2017+SVN
相关技术: C++17、boost、MFC、Socket、IOCP、reactor 、内存池、对象池、线程池、无锁队列、redis、 spdlog、berkeleyDB、svn
项目描述:TrendDB是一个基于C++开发、支持高并发读写、高压缩存储的实时数据库,解决关系型数据库的海量实时数据存储要求。支持32种主流工业通讯协议,支持聚合查询、趋势查询,帮助用户实现设备健康趋势预测,支撑六种不同语言SDK快速应用开发。
责任描述:负责TrendDB代理服务的重构。用户通过连接代理服务连接到实时库,代理服务解析用户发送的各种业务请求,比如登录、查询测点信息、读写测点的实时值和历史值等等,解析完成之后发送给响应的处理服务,获取返回值后将返回结果打包发给用户。
项目成果:(1)使用IOCP+多线程实现同时连接数量达到20W。
(2)设计对象池解决频繁申请内存的问题,保证了系统的稳定性。
(3)使用线程池、无锁队列提高性能,每秒处理请求达到万级。
(4)加入收发缓冲区解决粘包问题,控制客户端流量保证了高可用。
基于Golang的分布式文件存储系统
开发环境:Linux+Vscode+git
相关技术: Golang、gin、mysql、redis、rabbitmq、oss、consul、rpc、traefik、docker、k8s
项目描述:一个基于微服务架构的企业级云存储系统,使用gin框架进行开发,实现注册登录、token身份认证,支持海量的文件上传下载以及秒传和断点续传功能,使用docker + k8s的方式容器化运维部署。
责任描述:(1) 负责用户注册和登录服务开发,实现token认证、拦截器功能。
(2)完成上传和下载服务功能开发,实现文件秒传、分块上传、异步上传、断点续传。
(3)完成oss、rabbitmq、redis等中间件的集成和使用。
(4)基于go-micro搭建微服务架构,实现服务注册和发现,实现服务之间的grpc调用。