1. 熟悉 Linux环境下 go语言开发,熟悉 go并发编程、gc、goroutine等
2. 深入理解计算机原理,计算机网络,有扎实的数据结构和算法基础
3. 熟练掌握MySQL和常用的 SQL优化技巧、性能优化技巧
4. 熟悉MySQL/Redis/Kafka等数据库、缓存和消息中间件
5. 良好的编码习惯,熟练掌握常用的设计模式,擅长使用 TDD的方式进行开发
6. 了解 kubernetes基本原理,熟练掌握镜像制作、调试和 CI/CD的完整流程
MySQL迁移TIDB 开发工程师 2022.06-2023.10
历史记录服务 开发工程师 2021.09-2021.12
楼盘字典系统 开发组长 2021.01-2021.08
分布式爬虫调度平台 开发工程师 2020.06-2020.12
内容:
短信包业务采用的是MySQL主从架构,由于单机磁盘容量限制,无法支撑爆炸式的容量增长。其中MySQL单节点磁盘容量9
T,公司物理机磁盘容量最高支持12T,短信包MySQL单月数据最高4T,分天单表数据最高一天1亿多条数据,占用磁盘空间
大约100G,业务需要存储最近3个月的数据。
基于以上的问题我做了以下的步骤来解决问题:
1. 方案调研:参考了多种方案(单体物理机、ES、TIDB等),分析优缺点最终采用TIDB
2. 功能验证:对主流程(与数据库有交互)进行功能验证
3. 性能压测:使用sysbench对写入/查询的场景做数据库性能压测
4. 项目改造:对于功能验证出现的问题(例如id自增问题)做出多项目改造,并进行rpc服务的性能压测
5. 部署方案及回滚方案设计
6. 变更完成:持续监控
业绩:
1. 数据库成功迁移,迁移后零故障
2.提升存储容量可扩展性,最大容量提升了300%,从原来最高12T到37T(可扩展)
3.归档频率下降,预计从高峰期一月一次到3/4个月一次
4.运营平台查询发送记录更快,查询延时从半小时降低至2分钟内
内容:
记录 B端用户和 C端用户浏览的房源、经纪人、小区浏览历史数据,支持查看历史记录、清除历史记录、加虚拟币等。这是一
个高 tps,高 qps 读取的业务服务。
项目技术:Golang+Kratos+Redis+Kafka+MySQL
业绩:
1.负责历史记录服务的架构设计和编码。
2.为了使服务承受高并发的访问,分析了系统的 hot path,优化数据读写核心逻辑,以支持 1000+TPS访问。
3.面对高并发场景下响应时间变长的问题,为了解决这个问题,我采用了 write-back 思想提升系统吞吐率,最终使得读写接
口响应时间在 100ms 以内。
4.在内部压测场景下,会导致服务不可用,为了提升服务可用性,我使用了滑动窗口进行限流,最终使得系统在极端情况下
也可以继续提供服务。
内容:
楼盘字典是指记录楼盘名称、楼盘地址、建筑类型、产权类型、楼盘位置、楼盘图片等详情的一套楼盘信息系统。这套系统
采集第三方系统数据和内部系统数据供内部数据运营团队整理优化,最终提供完整的楼盘数据供中介用户查询浏览和纠错。
这是一个业务逻辑较复杂,功能比较完整的系统。
项目技术:Golang+Beego+MySQL+Redis+ES+MongoDB+Vue
业绩:
1.为了保证复杂的合并与撤销等逻辑的正确性,我采用了 TDD 的开发方式,编写单元测试,最终使得系统多个版本发布后
没有出现过 p0 和 p1 级别 bug。
2.为了解决生产环境分析 bug 困难的情况,我搜集业内开源解决方案,最终选用了 Sentry 应用程序监控平台,使得开发人员
可以快速定位问题。
3.带领三人团队实现项目的重构,制定团队编码规范、数据库规范及开发流程。
4.容器化前后端应用,简化部署流程,大大减少维护成本。
5.推动团队结对编程、持续重构、自动化流程。
淮南师范学院 本科 网络工程 2015-2019
内容:
基于Golang+Vue的分布式爬虫调度平台,支持管理爬虫,爬虫结果报表,节点管理等功能。需要实现多种语言爬虫的部署及数据实
时上报。
项目技术:Golang+Vue
业绩:
1.独立完成系统的架构设计,使用 Vue+Golang 实现前后端功能。
2.为了支持多语言的爬虫任务,我设计了 shell 执行器和 docker 执行器,实现了 Python,Golang,.Net SDK 实现数据实时上
报,最终使得系统支持多语言的爬虫任务。
3.在报表模块的设计上,我采用了sdk+elk+grafana的方案进行数据采集和结果展示,满足数十个爬虫的报表展示需求。
4.集成内部单点登录,并独立出功能转化成内部插件,在多个内部项目中应用。
角色 | 职位 |
负责人 | 前端高级工程师 |
队员 | UI设计师 |
队员 | 前端工程师 |
队员 | 后端工程师 |