zhaojn
1月前来过
全职 · 1000/日  ·  21750/月
工作时间: 工作日21:00-00:00、周末09:00-00:00工作地点: 远程
服务企业: 0家累计提交: 0工时
联系方式:
********
********
********
聊一聊

使用APP扫码聊一聊

个人介绍

| 熟悉JDK1.8,有扎实的编程功底和良好的代码习惯;(有代码洁癖)

| 能熟练地在Linux环境下编写Shell;

| 对于MySQL(5.7/8.0)有长期的使用经验,了解InnoDB数据结构、事务机制、锁策略,擅长表结构优化、索引优化、慢SQL优化;

| 有Redis项目经验,了解Redis使用场景、架构模式、缓存问题、持久化问题、分布式锁问题等;有MongoDB,ElasticSearch项目经验;

| 熟悉SpringBoot,SpringCloud,Mybatis,有阅读过SpringMvc4.3.4,SpringSecurity1.5.8,Shiro1.4.0的源码;

| 能使用Nginx做负载均衡和路由分发,配合upstream做健康监测和流量切换;

| 习惯使用IDE开发,Maven管理项目,Git控制版本;

| 熟悉TCP,UDP,KCP,ARQ,TLS,HTTP,WebSocket等协议,了解2PC,3PC,ZAB等一致性协议;

|有RocketMQ,Kafka等项目经验;


——


喜欢编程,喜欢数据库,喜欢协议,喜欢写博客总结自己的技术体系;

敢于质疑,敢于挑战有难度的问题;

而且,真正的高级用户喜欢选择能够找到的最简单的工具,直到他们认为简单的工具不适用为止;

喜欢阅读,喜欢涉猎各种内容,公众号 | 知乎 同名 “赵小哥”;

工作经历

  • 2020-04-01 -至今深圳集需购网络科技有限公司高级Java工程师

    负责核心业务的研发与重构,负责数据库优化,负责版本库管理; ——抽奖免单 ~ ——结算系统 集需购下单业务,由于前期糟糕的设计导致该模块结构臃肿,在这里负责的事情就是梳理+拆分+整合。 定义生命周期,将结算拆成3个步骤:费用+折扣+返利;费用比较简单,再拆两个步骤即可,商品与运费依次计算;折扣稍微复杂一些,由于优惠券的多样性,这里使用策略模式来处理;返利需要灵活地配置与组合,使用Redis中介定期失效更新来替代规则引擎,关于组合则是在处理器与选择器之间做一个建造者来构建生成方式; ——签到系统 集需购社交业务,200万的注册用户按照日活20%以二八比例散落在上下午共8个小时,QPS不过20,关键在于数据的读写。 活动表与奖品表的数据量可以忽略;签到表的数据量=活动x用户,冗余列做统计减少聚合开销且维护成本低廉,一年的数据量不过千万,次年可开第二张表,单user_id建索引选择性已到99.9%,更新的都是非索引列,不必担心sort/merge;记录表的数据量=签到次数,一年下来必然过亿,数据+索引大概21G,解决方案就是按照活动动态建表再做定时整合,扫表时根据活动时间将记录表串成一

  • 2019-11-01 -2020-03-01深圳云天励飞技术有限公司高级Java工程师

    负责人脸识别社交方面的业务研发; ——大笑夺宝 云天励飞基于人脸识别的累积抽奖模块,每次参与抽奖前需要付款,根据奖池的累计金额或者累计参与次数决定是否中奖。在这里一张表做配置,另一张表记录奖品发放,唯一需要关注的就是并发状态下的线程安全问题。由于持久化使用的是PgSQL,不存在MySQL5.1版本中update嵌套select执行顺序问题引起的数据不一致,所以这里没有使用分布式锁,而仅仅使用了一条SQL来做库存与进度更新,不引入中间件意味着系统结构简单、无需额外开销,同时仍然能够保证数据安全;

  • 2017-08-01 -2019-08-01北京享阅教育科技有限公司高级Java工程师

    负责App后端业务研发和数据库优化;构建服务化组件,维护工具包; ——装扮商城 考拉阅读社交业务的金流闭环,一个换装功能的二次元形象装饰,负责该模块的表结构设计,业务实现和版本维护;中单套装扮的各部位只存在有和无两种情况,故使用bit存储,意味着数据量最多是【用户数 x 部位数】,空间复杂度可控,考拉阅读注册用户300万,至今该模块仍保持良好的运行;代码结构设计清晰,例如逻辑计算单独提供Helper来实现,当发行的套装数使用long不足以支撑时,修改数据结构为char即可,需要做的仅仅是添加数据转换; ——金币商城 考拉阅读社交业务的金流闭环,包含道具购买、任务奖励、系统赠送等;负责该模块的表结构设计,业务实现和版本维护,统一了整个系统内的道具与背包功能;中各道具可重复获得,且有消耗品和buff类道具之分(例如vip卡),通过逻辑计算控制背包中同种道具只做一条显示,随着版本的迭代,道具种类以及数目会逐渐增长,当必要时可迁往高内聚、半结构化的MongoDB数据库; ——组词消消乐 考拉阅读社交业务的消词游戏,实现了冲关与星评的排行榜功能;表结构方面使用额外字段将个人通关记录做汇总存

教育经历

  • 2013-09-01 - 2017-07-01长治学院计算机科学与技术本科

    大创项目负责人; 华北联赛第二名,组长; 大二在本地一家电商公司从事研发; 大三独立完成一款单机版冒险手游; 大四于北京一家物联网公司实习,优秀毕业设计;

技能

数据库
平台架构
业务梳理
协议
0
1
2
3
4
5
0
1
2
3
4
5
更新于: 浏览: 131