个人信息

工作经验

6年

个人网站

https://carl-xiao.github.io/doc/#/

技能

  • 后端技能

    具备6年一线开发经验,负责过商场,营销中台,运维中台等项目架构的设计与实现

    精通Spring,SpringBoot等开源框架,且开发多个SpringBoot-Starter用于生产环境使用

    精通SQL与MySql调优,对mvcc原理, 索引有深入了解,有线上调优经验

    熟练掌握kafka,对核心原理有深入学习如负载均衡,leader选举,分区策略等

    熟练掌握Netty,基于Netty搭建过RPC(网关)平台,统一管理全服务平台

    熟练掌握java基础,熟悉集合框架,JUC,多线程等,在线上业务大量使用

    熟练掌握Redis对其原理有深入了解,如主从同步,淘汰机制等

  • 运维技能

    熟悉了解docker云原生相关工作

    熟练使用Linux操作系统等基本命令,shell编程等

教育

攀枝花学院

2012 - 2016

语言

Language

英语

CET-4

工作经验

成都海康威视技术有限公司

后台开发工程师

四月 2022 - 二月 2023

1 水利平台研发负责人

2 负责新人技术培养与成长

上海看榜信息科技有限公司成都分公司

Java

六月 2017 - 二月 2022

工作内容:

  • 短视频数据平台-营销中台抽奖系统开发
  • 基础架构平台开发工作,开发迭代网关产品,保障公司内部的服务调用
  • 运维团队的管理工作,搭建docker平台,实现全产品线上云,全后端服务上容器

项目

水利平台项目

研发负责人

六月 2022 - 十月 2022

项目内容描述:平台承接三方水位设备数据,上报实时数据到综合平台,并进行数据清洗再分发到各个下级平台。 项目技术栈: Netty,SpringBoot,MySql,Redis,Kafka,Mybaits,ES

职责:

1 重构项目,使用工厂模式,模板模式等设计模式重构代码并且梳理代码逻辑,将单机扩容到4台机器。

2 引入redis作为缓存,展示最新告警信息以及分布式锁使用

3 基于mybaits自写DBRouter组件,使用哈希散列实现分表功能

4 使用kafka消费设备上报数据, 以及清洗数据下发到各个二级平台。

5 利用flink同步数据到es,提供数据搜索,自动补全等功能

业绩

  1. 一期项目接入300+水位设备, 每天产生720W条数据数据, 大约20G左右。保证业务的正常运行, 如期交付

营销平台抽奖系统(NX-Lottery)

研发负责人

六月 2021 - 十二月 2021

项目技术栈:SpringBoot、Mybaits、Dubbo、MySql、Redis

项目描述:NX-Lottery是新抖数据平台中最重要的的微服务之一,主要为了满足年尾、年中等各个重大节日的拉新,促活,留存C端用户的抽奖系统。

职责:

1 使用DDD分层结构的模式,搭建整个抽奖系统

2 运用设计模式例如工厂,策略模式,组合,模板等抽象业务发奖流程和发奖策略

3 通过组合模式设计适配人群的规则引擎, 包括逻辑过滤器和引擎过滤器

4 通过kafka解耦发奖流程;通过XXL-JOB任务补偿发奖失败的消息

5 对于活动参与次数的扣减,使用redis分布式锁代替mysql行锁,提供并发能力

API网关

研发负责人

九月 2019 - 七月 2021

核心技术:Netty,SpringBoot,Redis,MQ,Dubbo,Nginx

项目描述:以Netty组件为基础,采用对象关系映射框架,解析请求协议,处理泛化调用,构建通信协议模型。网关采用分布式方式部属, 搭配网关中心统一管理nginx路由, 完成网关SDK上报的Dubbo分配与调用。

职责

1 借鉴Mybaits的ORM模型,以及数据库连接池实现逻辑, 管理连接资源和泛化调用的结果封装,搭建网关通信模型框架

2 横向对比zuul1.0后选择以netty作为网络层核心框架, 完成了每日7KW的调用,单机最高7K的并发

3 协作开发网关的控制台中心, 统一管理应用服务发现;针对异常服务,进行熔断与降级处理,并会通知对应的服务开发者

4 接入第三方阿里云日志服务, 使用MQ解耦的方式,完成所有的接口调用调用统计,保障各个业务线的调用日志查询,每日日志量30G

业绩:

1 项目健康99.9%,未发生过因网关服务导致的异常

2 保障业务接口的透明管理,为所有接口完成了统计,并针对性的解决问题。例如爬虫统计分析(恶意爬虫),维护服务的稳定性

个人总结

  • 具有6年后端开发经验 2年后端负责人经验带过6人左右的团队,
  • 具有1年运维管理经验了解熟悉docker等云原生相关知识
  • 具有多语言的使用经验,例如python/golong(短链服务,CD部署平台)等开发经验
  • 对团队内进行专业的技术指导,具备解决非技术类事务的协调能力和沟通能力