个人介绍
我是程序员客栈的【 zhangxinlin】一名【后端 java 开发】;
我毕业于【青岛科技大学】,担任过【北京印捷科技有限公司】的【高级后端开发】,
担任过【北京兴竹科技有限公司】的【java 开发工作】;
负责过【云出版平台】,【云出版平台-消息推送项目】,【云出版平台- ERP 项目】的开发;
熟练使用,【精通JVM】,【精通Java 并发编程,阅读过核心源码】,
【精通Spring、Spring MVC、SpringBoot、MyBatis】,
【精通Spring Cloud Alibaba技术栈(Nacos、Dubbo、Sentinel、Seata),阅读过核心组件的源码】,
【精通Spring Cloud技术栈(Eureka,GateWay,OpenFeign,Ribbon,LoadBalance ),阅读过核心组件的源码】,
【精通分布式的解决方案,对分布式事务,分布式锁、分布式 ID、幂等设计、分布式理论等有深入理解】
【精通Mysql,对Mysql的索引、锁、事务、存储引擎、高可用架构等有深入理解,具有Mysql的调优经验】
【精通Redis,对 Redis的数据类型,持久化机制、过期策略、高可用架构等有深入理解】
【精通网络编程,以及Netty框架的使用,了解Netty底层原理,阅读过核心源码】
【精通RocketMq的原理和使用,阅读过核心源码,并在实际工作中进行过扩展开发】
【精通 Web 容器(Tomcat)的原理和使用,阅读过 Tomcat 核心源码】;
如果我能帮上您的忙,请点击“立即预约”或“发布需求”!
工作经历
2018-04-03 -2023-03-23北京印捷科技有限公司高级后端工程师
负责所属模块的代码开发,调试与维护工作。 完成项目中公共组件和注解的开发,提⾼开发效率,代码的可扩展性。 完成项目中的代码的Review,提高开发的效率、降低维护成本。
2016-08-03 -2018-03-05北京兴竹科技有限公司Java开发工程师
主要负责研发电厂内部软件的开发、维护。 独立完成个人模块的项目开发和测试。 参与项目的需求分析以及解决开发,生产过程中遇到的技术问题。
教育经历
2011-09-01 - 2015-07-03青岛科技大学自动化本科
技能
项目描述: 系统架构:Spring Boot + Dubbo + Spring GateWay + Mysql+ Mybatis + Redis + RocketMq + xxl-Job 系统内容:对接三⽅系统,完成图书、用户、订单、⽂件等资源导入xxxxx出版云平台系统。 项目职责: 完成前期的项目架构和需求分析,编写开发文档。 负责核心代码的编写和测试,实现多机构下的资源接入。 通过Redis + Lua + 滑动时间窗口算法对接口进行限流,确保接口的可用性。 开发@MultipleRequestBody,解决@RequestBody 只能解析一次请求体的问题,实现一个请求体对应多个实体的问题,提高代码的可阅读,降低代码的复杂性。 采用个性化配置模版 +多种设计模式,解决多机构不同参数的适配和校验。 采用异步编程 +RocketMQ + 本地缓存降低参数校验和处理的耗时,提高系统的性能。 增加数据埋点,完成三方资源处理的全链路追踪。
项目描述: 系统架构:Spring Cloud + Spring Cloud Alibaba + Spring Boot + Dubbo + Spring Cloud GateWay + Spring Security + OAuth2.0 + Nacos + Sentinel + Seata + RocketMq + xxl-Job + Mysql + Mybatis + Redis +Redisson + MinIO+ ELK + SkyWalking + Prometheus + Grafana ; 系统内容:面向200多家出版社、排版厂、印刷厂,多机构下图书的创建、排版、审查、印刷等功能的全 链路管理平台,通过三⽅服务自动完成图书资源、附件等资源的加⼯处理。包括: 管理系统: 后端管理模块 、统计分析模块 出版系统: 图书管理模块、 排版管理模块、资源审查模块、印刷分发模块。 排版系统 : 排版审查模块、 排版资源管理模块。 印厂系统:订单管理模块、 印刷资源管理模块。 公共服务:⽹关服务、用户服务、⽂件管理服务、ERP服务、消息推送平台、 订单服务、定时任务服务、畅流服务。 客户端 :出版社客户端、排版客户端、印厂客户端。 项目职责: 负责图书管理、资源审查模块的开发。 负责对项目代码的 review 工作和多组件的开发,编写相关的开发手册,提高系统的稳定性、健壮性同时降低开发的成本。 参考SpringCache的设计结构,自研Redis+Caffeine实现多级缓存的PodCache 框架,实现多级缓存的整合和统一管理,并提供多个扩展接口,提高缓存的可用性。 开发@CollectCache注解,实现集合缓存部分命中的问题,提高缓存的命中率,降低数据库的查询压力。 开发@CacheExpire 注解+随机函数,实现自定义的缓存过期时间,解决缓存雪崩,提高系统的健壮性。 扩展PodCache缓存框架的功能,采用多级分布式锁+分布式锁的降级成本地锁策略+本地缓存,解决缓存击穿的问题,提高系统的响应速度和系统的健壮性。 通过@Translator+MVC 的返回值增强处理器 + 多级缓存,完成DTO 到 VO 的类型和字段的自动转换,提高开发的效率和系统性能。 开发 @Topic + @Consumer注解,屏蔽消息队列的复杂使用流程,开发者可以向使用本地方法一样使用,同时基于接口+ 动态代理,实现发送和消费的功能。通过接口解决大量 Topic 下生产者和消费者混乱的问题。实现面相接口开发。 通过 @Consumer 注解配置消息去重的自定义策略。实现消费者消费消息的幂等性。 RocketMq源码上进⾏⼆次开发,采用时间轮算法+定期持久化 + 多线程, 实现自定义时间的延时消息和延时功能的高可用。 开发@AdvisorBefore、@AdvisorAfter、@AdvisorOrder 注解,实现 AOP 中多个 Advisor 和 Aspect 的执行顺序的可视化,易于控制,降低开发成本。 开发@UnRepeatable防止重复提交注解,并提供多种自定义策略,保证接口的幂等性。 参与需求讨论和产品分析,以及线上问题的分析。
系统架构:Spring cloud + Spring cloud Alibaba + Spring Boot + Dubbo + Netty + WebSocket + Nacos + Spring Cloud Gateway + Mysql + MyBatis+ RocketMq + Redis + xxl-Job 系统内容:实现统⼀的消息的推送功能,对接短信、邮件、叮叮等多个平台,完成消息的推送、存储、回查。同时支持站内用户的单聊、群聊。 完成前期的项目架构和需求分析,编写开发文档。 采用消息模版+ 设计模式 + 异步编程等技术实现消息的发送和通知。 通过连接数量以及用户之间的亲和性等特点优化后端服务集群的负载均衡策略,保证Netty服务器连接数量的均衡性和⾼性能。 通过Redis + Lua脚本 + 滑动时间窗口针对不同的消息下发渠道进⾏分层限流,确保上下两层接口的可用性。 设计消息的结构和消息的 ACK 的机制,确保消息的可靠性、局部有序性。 实现自定义的分布式 ID 的生产策略,提高分布式 ID 的生成性能,确保消息的幂等性。 通过分区、分表、冷热分离等技术优化消息的存储。