个人介绍
我是程序员客栈的【proginn1227076767】,一名【java高级工程师】; 我毕业于【中山大学】,担任过【索信达】的【高级工程师】,担任过【云盛海宏】的【高级工程师】; 负责过【风铃项目】,【南方电网财务系统】,【南方电网法务系统】的开发; 熟练使用【maven】,【git】,【spring】,【springboot】,【springcloud】,【mysql】等; 如果我能帮上您的忙,请点击“立即预约”或“发布需求”!
工作经历
2022-02-01 -2023-12-01索信达高级软件工程师
公司主要做外包业务,个人负责团队管理,业务开发、技术选型与指导、与各业务线做应用整合等等
教育经历
2018-09-01 - 2022-07-01中山大学计算机信息管理本科
资质认证
技能
(1)将采集系统的python版改造为java版(前期); (2)将结算系统的python版改造为java版(前期); (3)独立开发kg采集系统。通过spring的任务调度Task联合jsoup调用彩票接口(前期通过RestTemplate请求数据),将返回的数据通过jdbcTemplate写入mysql数据库;通过atomikos事务管理器完成分布式事务管理;并且通过redisTemplate将频繁访问的数据写入redis;通过Spark提供Restful服务(前期使用RMI执行远程调用),方便用户执行code重新生成,通过实现SignalHandler拦截linux中TERM、INT信号量完成系统优雅退出功能;通过jmx技术、jConsole远程监控服务器运行状况,配合linux中top命令记录的日志信息完成应用的性能优化。 (4)基于以上技术完成kg结算系统,其中优化mysql数据库、redis和使用java多并发技术,提升结算效率。 (5)独立开发gc采集系统,重点完成走势图的开发设计工作,数据库中只需4个子段,而且达到效率最优化。 (6)支付宝订单采集系统。开发自定义浏览器登录支付宝,获取返回的交易记录,并将交易记录保存在数据库。 开发php注册、登陆、下注性能的压力测试系统。
1.系统优化 (1)条码系统引入ConcurrentHashMap、CopyOnWriteArrayList、AtomicInteger、CounDownLatch、ExecutorService、批量插入等多线程、高并发、原子类等技术提升分箱性能; (2)使用explain分析MySQL执行计划,使得sql查询提升几倍、十几倍甚至几十倍性能;其中印象最深的一次性能优化是帮助同事解决一个带有索引列关联反而更慢的案例,此经典案例可谓是对加索引解决慢查询的常规做法的一个有力反击,导致该问题的原因为索引误导优化引擎执行了错误的执行计划,最后通过ignore index解决。 (3)为了便于监控java运行性能,通过引入AOP监控指定package中自定义annotation标注的class、method方法的执行性能,通过日志的方式实时显示所有方法(方法签名)运行耗时,还可通过分析日志的方式统计耗时的top10,包括耗时秒数,以及占比等,后期引入kafka并将该信息实时保存在mysql中,成功改造为独立的系统---性能监控系统pms(performance monitor system),已在码云中开源; 2.疑难问题攻坚 (1)Blf1-PD系统使用LoadRunner性能压测通过JConsole观察对比OpenJDK和HotSpot在不同垃圾回收器的不同表现,通过MAT分析jmap导出的堆栈文件最终解决生产环境指定服务器PD工程经常宕机的问题; (2)Bf-cost成本计算项目通过存储过程执行的结果与java程序执行的结果存在百万分之一的差异,经过排查分析最终发现是java中的BigDecimal比mysql中的decimal计算精度更准确; (3)在Blf-barcode系统中引入java-image-scaling解决图片缩放失真问题、在blf-wordprint中引入OpenCC-Java-mavenized提高单位宽度条形码信息量等问题; (4)通过eclipse远程调试技术动态跟踪本地环境无法重现的测试环境异常、通过本地调试分析mybatis中的mapper文件未加载的原因、通过eclipse配置解决maven依赖文件未deploy到tomcat运行目录等等不一而足。 3.系统改造技术选型 (1)响应政府号召最近启动的视频培训项目,在对比分析各种技术后最终选择以往自学的Hadoop技术将视频文件存储在hdfs中,提升播放流畅度,最终成功拿下政府500W培训经费;通过ffmpeg将视频转码、截屏、加水印等解决视频无法播放、视频封面展示、知识产权等功能; (2)将钉钉消息通知平台由原有的tomcat部署的war包,改造为springboot方式部署在docker中,通过实现配置中心化、版本在Jenkins构建中自动迭代升级,极大提升了DevOps中沟通、协作与整合的效率; (3)在bf-ss-proc系统中引入phantomjs技术将json格式的echarts生成为png图片上传到MongoDB中,并将该控件及其依赖封装为linux镜像,开源到hub.docker.com(kinggho/centos:echartjava),并无偿捐赠给公司; 4.管理培训 (1)负责带领指导6人项目组团队; (2)带领团队成员完成条码系统、知识库系统、视频培训系统、龙浩系统、财务系统、供应商协同等多个系统的开发维护工作; (3)组织百丽大讲堂之聊聊java性能那些事、百丽大讲堂之聊聊mysql性能那些事和生产日报钉钉消息推送等多次培训活动。 5.生产环境问题处理、日常开发任务、领导交付的其他工作等
根据客户旅程,智能组装体验问卷,并主动对客户进行抽样和调研,以此为鉴针对性开展服务优化。 1.异常图表告警通知 (1)使用mybatis拦截器,首次进入生成唯一id并存入当前线程,获取执行的sql,记录到redis中; (2)如果使用缓存功能,则直接基于缓存的key获取redis中保存的数据; (3)在返回数据前,将当前线程中的唯一id清除,并返回到前端,保证当前线程再次使用时不会导致异常; (4)前端使用唯一id和调用的url、参数调用消息通知平台; (5)消息通知平台根据唯一id获取redis数据,并组装sql,将结果展示到对应的用户群组; 2.Xxl-job任务调度框架搭建与风铃系统整合 3.修正流水线自动构建已存在的隐藏bug 4.风铃系统敏感日志采集 5.风铃系统服务器容器内存和cpu调整缩容 6.智象、漏斗路径分析对接风铃系统 7.统一认证对接风铃系统改造 8.科技展厅接入手势操作、传入参数修改与返回结果调整风铃项目读写分离系统改造 9.风铃APP仪表盘缓存功能开发 10.风铃APP仪表盘对接NPS功能开发 11.风铃APP仪表盘对接蛋卷功能开发 12.推动项目组git代码管理规范化 改进代码性能(arthas、jMeter)、健壮性(jUnit)