个人介绍
性格开朗,善于团队合作,项目沟通能力好,有责任心,交付能力强
如果您也正好有项目需要寻找人帮忙一起,欢迎与我联系。
工作经历
2020-07-01 -至今字节跳动Golang开发
字节抖音系服务端的工程开发,包括抖音开放平台的内容安全管控开发,这块主要偏b端,抖音生活服务的相关工程开发,主要面向c端用户
2019-06-01 -2020-07-01阿里巴巴Java开发
负责阿里菜鸟网络自动化物流仓储系统的设计和开发,链接仓储设备和人,协调仓储拣选任务的完成。开发技术栈为Java,物联网协议mqtt
教育经历
2016-09-01 - 2019-06-01北京邮电大学计算机软件与理论硕士已认证
北邮计算机软件科班毕业,研究生入学考试综合排名第一,在校申请发明专利一项,ei论文一篇
技能
软件架构:Beego +MySQL + Redis + Kafka + FastDFS 项目介绍:该项目主要用于保存设备上报的富文本信息,在处理乱序数据的同时需要保证项目 的高可用,在大流量的前提下要确保事务的低延迟,主要有以下功能: 1. 可以通过文件系统后台管理模块查看、查看设备上传文件。 2. 通过远程指令控制设备拍照。 主要职责: 1. 架构上由三部分组成:设备消息消费端、业务逻辑处理端、异步文件写入端。 2. 负责设备富文本报文数据的解码、写入。 3. 负责文件系统后台模块对接 提供下载、查看功能。 技术要点: 1. 用 FastDFS 作为分布式解决方案,管理文件,并处理文件的存储,下载和查看。 2. 使用池化技术、异步队列、批量读写等技术处理大流量,提高并发处理能力。 3. 使用 Redis 缓存实现设备断点续传、乱序写入。 4. 使用 Kafka 作为高可用解决方案、确保消费消息不丢失
项目名称: IM即时通信系统 项目概述:一款可用于企业内部的即时通讯软件系统平台。支持PC端一对一聊天,群聊,文件共享,图片/短视频,表情包,用户头像,消息数据的持久化的功能。整个后端服务架构主要由LoginServer,MsgServer,RouteServer,DBproxyServer,FileServer,MsfsServer这6个服务组成;另外通过WebServer+HttpMsgServer实现后台对用户的注册和管理。 开发环境:Linux + Windows + C/C++ + Nginx + redis + mysql 使用技术:Nginx;DNS域名解析协议;http/https;websocket;php;基础组件的封装;epoll网络库的封装;TCP/IP协议栈;threadpool;bufferpool;reactor反应堆;ZeroMQ消息队列通信中间件;openssl开源加密库; json;编码/解码;压缩/解压缩;log日志系统;redis/mysql连接池设计;数据库基本操作;架构上应用p2p网络去中心化技术;cmake;makefile;配置和文件的读取。 项目负责: 1. 架构整体的实现,研究p2p架构,网络去中心化技术; 2. 通过Nginx实现水平扩展的MsgServer的负载均衡; 3. 基础组件threadpool,bufferpool,netlib的开发和封装; 4. 通过mysql/redis连接池的设计实现数据持久化到数据库; 5. 通过自定义协议实现服务器数据之间的传输,采用protobuf做二进制数据流的序列化和反序列化; 6. 采用ZeroMQ消息队列增加MsgServer和DBServer之间消息的吞吐量
软件架构:Kafka + Redis + Mysql + Consul 项目背景:面对日益增加的并发量,迫切需要优化现有的 MixIOT 整体架构,采用缓存+ 拆分 服务来提供系统的负载和高可用。 项目介绍:通过缓存设备状态 FV 信息,分离业务处理模块来提高系统的负载。缓存架构采用一 主多从实现读写分离和高可用,使用 AOF + RDB 做冷热备份,使用哨兵集群监控节点状态和故 障转移,使用 Consul 作为微服务注册/发现,健康检查,使用 Kakfa 分布式分片集群保证系统 高可用和高性能: 主要职责: 1. 负责拼图服务/事件,故障,告警核心服务的开发和系统搭建; 2. 负责消息中心微服务功能边界的划分和模块开发; 3. 负责实现自研分布式一致性架构保证高性能和高可靠。 技术挑战或问题: 1. Kafka 发送消息保证消息的可靠性,幂等性,以及参数优化; (1) 描述:使用 Kafka 发送消息的时候,可能发生小心丢失,消息重复消费等问题 (2) 措施:从三个角度来保证消息不丢失 1 发送时通过事务消息来保证消息一定发送到 Kafka,异常则回滚 2 Kakfa 使用一主双从保证高可用 3 消费时只有执行完全部业务才会提交 offset,异常则稍后重试 4 在消费端通过 Redis+状态机保证消息幂等性 2. 缓存冷备份恢复缓存穿透、redis 启动时瞬间缓存雪崩问题; (1) 描述:在 UAT 压测时,刚开始 Redis 数据为空,瞬间大量请求穿过 Redis 打倒 MYSQL 导致崩溃,在模拟 Redis 集群崩溃时,使用 RDB 冷备进行快速恢复、发现 RDB 文件中 的数据没有加载到 Redis 中。 (2) 措施:首先只启动 Redis,将热数据通过 RDB 恢复到 Redis 中,保证应用在使用 Redis 前,Redis 中已经有部分热数据,避免发生缓存穿透,恢复时严格按照以下过程: 1 关闭 AOF,通过 RDB 文件启动 2 动态修改配置开启 AOF,这样可以保证开启 RDB 和 AOF 的同时,保证数据安全的 加载到 Redis 中