曹耘豪

基本信息

专业技能

工作经历

项目经历

财务系统(云快充)

云快充财务系统,涉及到C端用户钱包充值退款订单支付会员购买等,对接多种支付渠道,如直连的和基于银行的间连模式的支付宝、微信,还有免密支付,还涉及到B端清结算

技术栈:Spring Cloud、Feign、Nacos、Sentinel、Kafka、MySQL

我的贡献:

  1. 按时完成业务需求。在评审、开发过程中对产品的合理性提出一些自己的见解

  2. 增强既有代码的复用性与可读性,减少项目中大量的重复代码

  3. 抽取支付中台。整合现有支付能力,将支付与业务剥离,方便各种业务接入支付

  4. 对接多种支付渠道

收获:

  1. 深入理解Spring Boot和Cloud机制,期间在博客里做了些许总结,比如事务、AOP、分布式锁、服务发现、FeignClient、负载均衡等
  2. 支付系统有了比较深刻的理解,比如并发业务幂等
  3. 丰富的对接第三方API的经验
  4. 在做业务需求和维护老代码的过程中也逐步形成一套写代码的最佳实践
  5. 项目使用了基于Prometheus+Grafana的监控系统
  6. 阿里云上部署的,所以也熟练使用阿里云了(笑哭)

PaaS平台

广告服务统一管理平台,基于公司一级调度平台之上的二级调度平台。目标是统一部门的Pod部署方式,提高部门的资源利用率,降低资源使用

技术设计:前端发起请求,后端(Spring Boot)验证后修改集群状态(存于MySQL),然后通过HTTP将集群变更发给调度器,由调度器执行滚动更新。数据自动更新:后端定时扫描HDFS检测新数据产出,校验数据一致性通过后,将数据变更发给调度器。集群状态反馈:调度器通过Kafka向后端反馈集群事件,后端消费后更新集群状态。其中指定partition保证集群事件顺序消费。用户认证:JWT+SSO认证

技术栈:React、Spring Boot、MySQL、Ebean、React、SSO

成果:支持部署、发布、灰度、扩缩容、数据更新,流水线、监控告警、数据一致性、定时扩缩容、弹性伸缩等。累计托管数千个在线集群,十万次集群变更,百万次数据更新,十万级核数规模

担任角色:前期前端Owner后端Owner

收获:

  1. 技术收获。负责整个管控后端的迭代设计和编码
  2. 产品设计。担任了部分平台交互设计工作,对友好的交互有更进一步的认识
  3. 需求分析。由于服务多个业务方,所以对于特定业务方提出的特定功能需求,需要思考总结出更加抽象的解决方案

广告DMP系统

提供给广告主更精准的流量抓手。广告主在后台选择用户标签圈一个人群,实时展示标签对应人群数,同步人群包实时生效等

技术设计:上游服务通过Dubbo调用Dispatcher服务(Spring Boot),Dispatcher通过grpc请求所有分片broker(用户标签数据)。Importer(Flink)接收broker通过Kafka发来的实时人群包写入Redis。SDK(Java)提供给在线广告引擎查询用户所在的人群包

技术栈:Spring Boot、C++、HBase、Redis、GRPC

成果:支持标签用户数毫秒级返回,人群包实时同步分钟级生效

担任角色:Java部分的Owner

收获:

  1. 第一个多方参与的项目,完整参与了项目立项、需求分析、方案设计、架构设计、编码、测试、验收、上线、反馈等,充分掌握服务的上下游和数据链路
  2. 对java与C++的GRPCProtobuf有更进一步的认识

统一数据SDK

提供给广告引擎服务的取数SDK,使用统一数据查询接口,为业务方屏蔽底层存储。本人在职期间全程独立维护该SDK

技术设计:定义统一的KV、KKV、KSet访问接口,为CodisHBase分别实现统一接口,小量数据也支持全部加载到内存以快速访问。包含路由实现,支持基于桶数的随机流量路由策略。支持相同底层存储的连接复用,支持相同类型数据的线程池复用。使用Hystrix熔断。使用反射获取HBase Client内部方法预加载Meta,使用Caffine本地缓存解决热点key,使用Guava单机限流

技术栈:Java、HBase、Redis(Codis)

成果:极大方便了数据在不同集群间的迁移且上层无感知,提升数据可靠性。数据不停机上下线提升了算法数据的迭代效率

担任角色:Owner

收获:

  1. 入职后的第一个项目,该项目主要使用了各种基本的设计模式,比如工厂模式、模版方法模式、建造者模式、单例模式等,对Java编程有更进一步的了解
  2. 该SDK使用方为在线广告引擎,接入过程中对广告引擎也有了一定的了解
  3. 由于HBase的compact,所以经常在凌晨收到电话告警,积累一定的线上问题处理经验
  4. 连接复用线程池复用有一定的经验

One more thing

本简历更新于2024-11-09