熟悉JAVA基础,如IO、集合、多线程并发等基础框架,了解JVM内存模型和垃圾回收机制,能使用相关工具排查问题
熟悉Mysql数据库,有SQL优化经验,有分库分表实践经验
熟悉redis,了解底层数据结构和原理机制,有丰富的实践经验
熟悉RocketMQ消息中间件,有事务型消息的使用经验
熟悉Dubbo、SpringCloud Alibaba等分布式服务框架,熟悉底层原理机制,有实际开发经验
掌握常用的数据结构和算法,并能应用到实际开发中去
熟悉常用的设计模式,并能合理运用在程序开发中
有大数据开发经验,会使用阿里云大数据开发治理平台DataWorks
1. 最近一份工作经历是负责一款淘客APP从0-1的搭建、开发,在2个月内完成10人技术团队的组建并完成APP一期研发任务的上线(对标竞品80%功能),APP最高日活20W+用户,日订单量30W,月佣金2000W。
2. 制定并完善了团队内的技术规范(日志规范、MQ消息使用规范、业务模型规范等),提升项目可维护性和降低团队沟通成本
3. 采用外包运维团队搭建系统基础设施,后期开发参与运维工作,为公司节省了运维开支。
4. 前期系统架构较简单,各种实时榜单和用户报表等需求直接通过Mysql查询统计,随着用户量增加Mysql已无法再承载高并发大数据量查询请求。我通过需求分析为不同的查询需求采用2种解决方案:①针对实时性要求不高的查询需求,引入阿里云的MaxCompute和ElasticSearch,采用离线计算的方式产出报表数据供业务系统查询;②针对实时性要求较高的查询需求,使用canal订阅Mysql binlog实时加工数据并同步到ElasticSearch方式提供秒级的实时性数据查询。
5. 为了解决爆款商品爆单后,热点账户并发入账锁冲突的问题,采用mysql顺序写+redis缓存+定时任务批量入账的方式优化,保证了佣金入账的实时性、账户余额的准确性和最终一致性。
6. 使用基于JWT的用户认证方案,避免redis存储session,降低redis访问压力。
7. 封装了项目中常用的开发组件,统一管理维护,提升团队研发效率