•熟练掌握Java基础知识,熟悉常用的设计模式;
•熟练掌握多线程与JUC并发编程,并深入了解其原理,能做到性能优化。
•掌握数据结构与算法,有深入研究过常用数据结构并手动实现过。
•熟练掌握JVM内存结构,对象内存布局,类加载器,字节码技术,生产环境下调优;
•熟练使用Springcloud,Springboot,Mybatis等框架,熟练使用Mysql,SqlServer等主流数据库。
•掌握主流微服务框架和中间件的使用,掌握分布式理论和分布式相关技术。
Event中台项目
项目介绍:Event是一个汇总所有模块信息的系统。由于公司是做跨境电商的,所以会设计Campaign,AdGroup,Keyword,
Product等参数的调整,这是公司所有业务最底层的SDK。然后公司开展的一些业务,包含Rule,AI,DayParting,Bulk等操作都是对SDK底层的调用再封装,开展一些自动化的业务。Event正是对这些操作的结果进行的可视化展示,包含日志的形式,图表的形式,既是跟客户信息的交互,也方便开发者日记追溯。总之,公司所有的项目模块都需要接通Event服务。
技术栈:ShardingJDBC,Kafka消息队列,K8s集群,分布式锁,幂等,ES,决策树,eventBus
攻克过的难题:由于全公司数据都会汇总event,所以QPS和TPS会收到一定的挑战,需要做到高并发下高可用。在这种场景下重复消费,消息丢失都有可能随着网络的波动发生,这是技术上的挑战。接着是业务复杂度的挑战,既然是要汇总全公司数据,必然要兼容所有平台和业务场景。这里我用自研的可配置一致性Hash算法和决策树算法兼容后台接口,以及一些业务不通用的场景皆做到可配置,最终做到了业务扩展零代码。