分销系统整体均采用springboot/mybatis/dubbo微服务方案开发,以功能模块拆分成小且易维护分布式单元服务,项目公共服务大量使用Java设计模式如策略、责任链进行高度抽象,使用k8s集成docker交付部署。
1、储存基于公司Mysql集群、Redis-Cluster集群、Elasticsearch集群,因为数据量较大,我们使用sharding-jdbc基于商家id做分库分表,并根据压测数据和服务接口调用量评估合理配置容器pod规模,db连接数,redis连接数,es各类操作线程池,做好服务的无状态和易扩容准备
2、为保证数据一致性,ES数据同步使用binlog机制canal框架同步,为保障消息同步的高并发性能,基于线程池和competableFutrue实现异步任务高性能编排,保证各大商户近千家门店商品同步性能
3、为保障秒杀、限时折扣等场景下系统高可用性,使用阿里sentinel做好服务熔断降级,接口幂等性采用redis加token配合自定义注解方案实现。
4、为提高系统接口高并发性,项目基于redis集群结合spring-cache搭建一套缓存方案,并做好秒杀或限