熟悉 Java 基础 ,了解 solid 原则和常用的设计模式了解 Java 内存模型 ,熟悉常用的垃圾回收器
熟悉多线程相关知识 ,其中包括线程池 ,锁的底层实现以及 JUC相关多线程类
熟悉 spring , mybatis , springmvc 等基本开发框架 ,熟悉 springboot
熟悉 springcloud 微服务技术 ,包括注册 ,配置中心 , rpc 以及服务降级 ,熔断和限流机制
熟悉 seata 分布式事物解决方案,了解 2pc,3pc,tcc 等基本理论
熟悉 netty 高性能框架 及相关 IO 模型
熟悉 Redis 数据结构 ,分布式锁实现以及相关集群方案
熟悉分库分表相关方案和实现
熟悉 mysql 数据库 ,包括解决读写冲突的 mvcc 机制 ,常用引擎下的索引 ,以及常用的 mysql 日志
了解 rabbitmq 消息队列 ,保证消息可靠性并了解避免重复消费相关方案
了解 elasticsearch 作为搜索服务
了解 sentinel 限流和熔断解决方案
有Java开发游戏经验
1.在线交易平台
相关业绩:
(1) 负责网上交易模块建设,完善交易打分机制, 用户提出相关交易要求, 由多名专家对不同供应商资质以及提供商品的质量进行打分,系统自动汇总专家打分,和商家报价的价格分并选出最优的报价供应商并完成合同的签订
(2) 负责相关慢接口优化,调整数据库索引、事务处理、重复rpc调用、循环查询、 缓存等措施显著提升系统性能, 实践中最大提高10倍慢接口查询效率
(3) 应用集群部署利用redis结合lua实现分布式锁获取、续期以及释放操作, 有效避免数据不一致的问题产生
(4) 参与中台应用建设与开发,为各个上游提供通用能力,根据配置实现不同html模板内的内容渲染与填充,并生成不同样式的正文,同时作为数据出口,将数据推送至各种内部网站和第三方对接平台
(5) 作为数据出口,将已完成的单据插入到数据库临时表中,结合spring定时任务,扫描临时表通过dubbo和rocketMq进行内部应用数据传输,通过HTTP进行外部三方系统推送
(6) 通过canal解析MySQL的binary log 日志将相关修改操作dump到elasticSearch中,保证数据的一致性,并提供搜索服务
(7) 建设数据对账功能,根据数据状态(一般分为创建/外部导入、审核、发布)来定时检测当前单据是否应该推送至下游网站或者 第三方系统, 同步推送采用Dubbo/ Http接口调用并获取推送结果, 异步使用mq方式并监听回调mq消息,对不正常数据进行告警,很大程度上解决了上下游数据不一致情况产生
(8) 使用工作流完成单据的审核功能,根据对应的角色可配置对应的上下级审核以及相关审核节点数量和每个节点跳转条件