熟练使用 Java开发,熟悉面向对象编程、基础算法,掌握Java 8新特性
熟悉 MySOL数据库,了解Oracle数据库,掌握 NoSOL数据库的使用
熟悉 Java Web开发,能用Tomcat,Nginx,Maven 等管理 Web 项目
熟练使用 Spring Boot框架开发项目,熟悉常用的中间件如Redis、RabbitMQ等
熟悉Spring Cloud常用组件,有微服务项目相关经验,掌握Dubbo注册机制以及远程调用
熟练使用Git管理项目,熟悉Jenkins项目构建流程,熟练使用Kibana日志系统
熟悉HTTP协议等网络通信协议、熟悉inux常用命令
有信云 2.0 商城系统
描述:该项目为集社交商城、经销管理一体的SaaS化系统,整合了订单、商品、库存、物流等微服务。订单处理为核心,实现了经销管控、进销存管理、订单处理、资金对账、支付物流、团队管理等功能。商品、订单模块集成ES构建全文搜索服务。订单模块采用责任链模式,根据多租户不同需求构建订单生成链,提高了程序可扩展性商品模块采用建造者模式,根据不同的业务场景构建返回结果,只返回商品必须的信息,提高了性能。
下单、使用优惠券、扣减库存使用TCC分布式事务保证原子性与一致性。全局缓存模型使用本地一级缓存,redis二级缓存,异步处理使用消息中间件RabbitMO进行业务解耦。
职责、贡献:本人主要负责领域层如订单、商品模块的开发、重构工作。订单列表重构,采用MyBatis作为ORM框架,设计了自定义连表模型,根据业务需要进行连表并且对SOL进行调优,提高了60%以上的性能。订单支付重构,引入ThreadLocal进行上下文传递,实现了订单拆单的金额分摊算法,支持订单组合支付与多次支付。
第三方订单同步,采用了分布式锁保证一致性,使用建造者模式构建订单对象,使用策略模式计算分佣金额,另外使用JUC工具类实现数据异步入库,保证高并发性能。使用订单状态机进行订单状态流转,拦截错误的状态流转抛异常。购物车列表使用Java8并发工具类异步分批请求,解决购物车商品过多时的性能问题。采用TCC处理订单与优惠券、库存分布式事务,下单前请求优惠券及库存服务,锁定资源并生成订单关联记录,下单成功后发送mg消息来解锁并实际扣减库存,防止超卖。为了保证高并发性能,优惠券及库存数据先加载到redis,通过lua脚本保证原子性。引入ES作为全文搜索服务,将基于数据库的商品搜索、排序功能迁移到ES上,提高搜索性能。