小程序分销系统

我要开发同款
manong9962023年05月21日
161阅读

作品详情

分销系统整体均采用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搭建一套缓存方案,并做好秒杀或限时折扣等场景下添加一批商品到缓存或热点商品key查询等不同业务场景下缓存雪崩,缓存穿透及缓存击穿的预案
5,项目订单、商品等各模块广泛使用kafka/rabbitmq集群做消息队列做消息堆积和流量削峰,并根据数据量规模做好消息分区,消费线程数据评估,消息消费重试及顺序等
6、项目内多场景下可能需要接口或消息延时重试,小数据量重试我们使用redis支持list、zset数据结构结合SingleThreadScheduledExecutor调度线程池,编写一套延时重试框架,大数据重试我们采用rabbitmq死信队列或roketmq延迟机制实现
7、项目内常见分布式事务主要使用回调补偿或TCC实现、分布式锁常用redisson、分布式主键snowflake
公司调用链采用zipkin,配合selvet、dubbo过滤器、mybatis拦截器,druid过滤器打点span,通过log4j2写入文件,flume高效收集,webUI展示
8、对多个框架进行二次改造已完成业务场景适配。
目前服务稳定运行可靠,稳定支持上百家KA大客户要求
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论