个人介绍
我是程序员客栈的元也君,一名后端Java开发;
我毕业于华中师范大学武汉传媒学院,负责过《全国志愿服务信息系统》、《邻里邦APP》、《SaaS云报表》的开发工作;
熟练使用SpringBoot、SpringCloudAlibaba、MySQL、Redis、RabbitMQ、XXL-JOB、ES;
如果我能帮上您的忙,请点击“立即预约”或“发布需求”
工作经历
2021-04-15 -2023-07-07软通动力信息技术有限公司java开发
公司主要是跟华为公司合作,本人负责和华为方合作来开发系统功能,以及版本上线前的维护工作。
2018-03-28 -2020-12-15深圳永兴元股份有限公司武汉研发中心 Java开发
公司主要是承接来着政务部门项目,本人主要负责网站系统后台开发工作,以及系统数据迁移和优化工作。
2017-03-01 -2018-02-28上海海隆软件有限公司Java开发
公司业务主要是对日开发,涉及到汽车领域的产品的内部设计流程管理,以及网站推广,销售等。
教育经历
2013-09-01 - 2017-06-30武汉传媒学院信息管理与信息系统本科
技能
云报表可提供按各个门店为核算单位的销售单、进货单、销售统计报告、进货统计报告、应收应付⽋款报告、库存统计报告、利润统计报告;同时提供按全部门店作为一个整体单位的以上各种报表,满足不同管理者的查询需要,帮助了解经营业绩。 1、以核心开发者的身份,参与该项⽬初期搭建、中后期的架构演进、性能优化,以及核心模块的开发⼯作。 2、主导并落地实现该项⽬多租户数据隔离⽅案,根据不同企业的不同诉求,提供各租户独⽴数据库系统,各租户独⽴表空间,以及按字段区分租户等三种⽅案。 3、按字段区分租户的数据隔离⽅案中,以租户ID取模的⽅式对业务主表进⾏分库分表,解决当企业租户数量增加时,系统存储侧的横向扩容问题。 4、性能优化,多业务场景多维度统计汇总,使⽤XXL-JOB分布式任务调度平台的分⽚⼴播模式代替原来的故障转移模式,多节点并行执⾏各个维度汇总指标的任务,整体将任务处理时间提升8倍。(483s—>60s) 5、多业务场景多维度统计汇总,性能持续优化,通过XXL-JOB定时跑批的⽅式,由原来的全量计算的⽅式优化为上个时段汇总数据+当前时段增量计算,将整体性能提升8倍。(60s—>7.5s) 6、为防⽌多租户同时同步上传数据操作所产⽣数据库的写瓶颈,引⼊Kafka进⾏异步消峰,提升系统的伸缩性和可⽤性。
邻⾥邦APP,是通过互联⽹技术来创建的智能O2O社区服务平台,是对传统物业服务的智能延伸,旨在为⽤户来更好的社区⽣活体验。 1、参与该项⽬从单体服务到微服务的拆分,并负责“物业服务”中“物业缴费”、“报修”和“社区活动”等核⼼模块的开发⼯作。 2、“物业缴费”模块中的“下单”功能,通过下单业务类型+⼩区ID+⽤户ID作为Rediskey,并设置过期时间为3s的⽅式,防⽌在短时间内⽤户重复提交订单,通过XXL-JOB分布式任务调度平台,对30分钟过期未⽀付订单进⾏关单,使其成为终态。 3、将“物业缴费”模块中的下单和⽀付功能进⾏服务分离,并把⽀付功能平台化,开放API给“社区团购”业务使⽤,以及通过业务类型+订单ID来进⾏幂等性校验,解决失败或超时重试导致的重复⽀付问题。 4、通过设计模式中的“职责链”模式,优化“报修”模块的审批功能中臃肿繁多的ifelse条件分⽀,使审批请求的发起者和处理者解耦,分离职责,动态组合。 5、引⼊SkyWalking监控系统,对“物业缴费”和“报修”模块进⾏调⽤链路追踪,解决分布式系统问题排查效率低下的缺陷。
项目分为网站志愿者模块,后台志愿队伍模块,后台管理部门模块。 1.参与该项目的性能优化、新老系统迁移,并负责首页和志愿者、排行榜等主要模块的开发工作。 2.通过雪花算法⽣成分布式ID,再将ID取模的⽅式,为两亿多数据量的志愿者表进⾏分表(10张表),解决数据库单表的并发瓶颈问题,并通过Canal将数据从MySQL同步到ElasticSearch,以此满⾜对志愿者信息进行多维查询的业务场景。 3.新老系统迁移,以模块化渐进⽅式,通过实时增量数据新⽼系统双写,存量数据定时任务并行跑批,以及配置切换调度的方式,解决迁移平滑性问题。 4.性能优化,⾸页内容展示接⼝通过CompletableFuture并⾏获取多个下游服务数据(志愿者、志愿队伍、项⽬、新闻等)并进行聚合,将接口的整体响应时间从820ms降低⾄130ms。 5.排⾏榜模块,通过RedisZSet来代替原来的实时汇总计算的⽅式,来实现项⽬数、志愿者数、志愿者积分和新闻浏览数等排行榜功能,将性能提升95%(700ms—>32ms),并同时将志愿者积分和新闻浏览明细信息实时落库,防⽌Redis宕机从而导致数据无法精准恢复的问题,在兼顾性能的同时,保证数据准确性。