个人介绍
从事java开发10年,可以全栈开发
1.熟练使用netty,Spring,SpringMVC,Springboot,SpringCloudAlibaba,MyBatis等开源框架.研究过相关源码,比如spring的bean生命周期以及循环依赖,,mybaits的实现原理,springboot的自动装配,nacos服务注册,ribbon负载均衡算法以及sentinel等熔断限流原理
2.熟练Java并发编程的基本原理,研究过JUC常见并发包的源码以及原理,熟悉jvm底层原理,了解垃圾回收机制
3.熟悉mysql,oracle等数据库,对innodb索引数据结构,sql优化以及事务隔离级别等有一定了解;
4熟悉IO模型、熟练使用tomcat ,redis,以及redis,zookeeper两种类型分布式锁的实现原理
5..对quart和xxl Job这些分布式任务调度框架的原理有一定了解
6.理解CAP理论,分布式事务实现原理以及项目中多数据源切换使用有一定了解
7.熟练使用kafka等消息中间件,了解底层原理
8.对于java设计模式有一些了解,并在代码功能实现的基础上,进一步重构代码,使代码拓展性更强,松耦合
9.前端方面熟练vue.js+elementUI, js,jquery,css
工作经历
2021-05-20 -2022-11-01亚创工程技术有限公司Java高级软件工程师
1、参与思科cisco 英国脱欧站点迁移,sitemigration项目,一批站点包括制定迁移计划,到开始搬迁db,录音,翻译等大小文件的工具,设计sitemigration框架,包括需求分析,技术选型,通用工具以及核心模块开发。 2、参与思科对于失活站点的相关数据清理项目,sitecleanup项目,清理失活站点的全球相关db,dns,Es以及Cassardra等各种存储的全球站点数据
2018-07-01 -2021-05-20浙江网新恒天有限公司 2018.07-2020.05 浙江网新恒天有限公司 Java高级软件工程师
1、苏州光大医药项目是以完整的基层医疗机构-信息化解决方案为出发点,打造连接诊所、医生、 患者、一站式互联网医疗服务系统,全面 提升医疗管理质量和可执行落地的综合性解决方案。参与了经销存模块开发以及网上预约模块开发,积累了分布式项目开发经验 2、参与无障碍项目即对视觉障碍者友好操作提示,主要是前端修复,利用辅助工具wave和NVDA,熟练前端项目调试工作
2013-01-04 -2018-07-01天津摩卡软件有限公司高级后端工程师
1.参与一个叫pms项目管理系统,用流程将整个生命周期中的各种数据穿起来,是一个基于流程化的管理信息系统,参与项目的数据录入,修改,以及统计查询; 2、后期配合移动计划部开发各类报表统计需求并对工作流进行优化
教育经历
2005-09-01 - 2009-07-01淮南师范学院信息与计算科学专业本科
技能
苏州光大医药项目是以完整的基层医疗机构-信息化解决方案为出发点,打造连接诊所、医生、 患者、一站式互联网医疗服务系统,全面 提升医疗管理质量和可执行落地的综合性解决方案。参与了经销存模块开发以及网上预约模块开发,积累了分布式项目开发经验
项目主要是删除那些和cisco终止合作关系基于GDPR 的原因,要在用户完全无感知的情况下,并且优先级并不会太高,要避开server运行高峰删除站点在不同存储系统的数据,项目整体架构采用master slave架构,该项目通过shell脚本驱动,会在脚本里编排执行顺序,再启动java进程去执行,根据配置datacenter容器里包含的domain信息,去cisco数据库连接信息注册中心拉取连接信息,api的调用都采用安全验证,最终拉去到的配置信息写道本地csv文件,本地csv文件也会根据写入时间设置定期取重新拉取,并且会校验连接的合法性, manager发起删除command,通过kafka发送消息,worker 接收到任务进行校验,同步或异步得执行任务,worker有10多个,分别删除db,文件系统,es系统等等各个存储上的各种类型的数据,最终worker通过kafka反馈task完成情况。项目主要通过job驱动manager,worker工作,并且系统也有完善的报警机制,worker 状态异常,运行时异常都会发送mail通知 主要负责项目的二次开发 难点主要是各个删除的worker的异步任务调度
cisco sitemigration的项目,如果有一批sites需要migraion,就会在平台上制定一个migration Plan,确定需要搬迁的站点的source和target端,以及migration date.导入需要migration的站点信息.当这个计划被approved以后,就会根据项目的工作流来执行flow对整个site的大文件,DB以及小文件搬迁工作,当所有类型数据(全量以及增量)全部搬到target端,标志着一个migration动作全部完成,项目采用前后端分离,用nginx反向代理,前端采用Vue+ElementUI,后端采用Springboot,MyBatis,Quarz 集群,以及Eureka,GateWay这些SpringCloud的微服务框架,由于项目有很多dataCenter涉及到不同类型如oracle以及postgresql以及不同domain的数据源切换,通过实现AbstractRoutingDataSource用于多数据源的切换,migration需要根据工作流来完成,项目实现了一套完整的工作流,并且有一个Coordinate来根据不同流程编排task,下发给不同worker去执行,实现异步收集执行状态。每个worker的service又集成了quarz job的jar包,可以方便的启动各种类型的quarz job,并且通过反射找到需要执行job的方法,quarz job集群又可去争抢任务去完成job.并且每个job中的工作可以通过多线程去完成,这样大大提高了worker的工作性能,文件搬迁实现Apache sshd来操作服务器上的文件,pentaho-kettle ETL工具和shareplex 产品来实现db搬迁工作,这些都可以很好得提高项目的性能,并且大量使用代理,抽象工厂,以及反射技术来实现解耦使项目及其灵活,同时也使用了cisco其他团队的产品,如Ci安全验证以及CMC类似项目配置中心,以及disApi数据库连接信息注册平台,项目可拓展性非常强大,可以根据migration站点任务量来增加减少workerService在一个集群中部署的数量,并且配置参数也非常灵活. 本人参与了项目的框架搭建和改进,表结构设计和讨论,数据准备阶段以及公共模块以及核心代码的编写,另外也参与了项目前端页面的开发,主要运用的技术栈为spring cloud,spring boot, quartz,多线程,nginx,kafka,mybatis, vue.js+elementUI 难点主要是多数据源的切换,任务编排调度,事务以及重试