项目介绍:此项目为综合性卡牌交易平台APP,内容涵盖店铺入驻、实体IP卡拼团、数字版权资产卡盲盒、兴趣社区、权益兑换、平台活动、拼团直播等多个方面,为用户提供丰富的卡牌集换和交易体验。
所用技术:SpringCloudAlibaba + Gateway + Nacos + Dubbo + Mybatis-Plus + Redis + Mysql + RabbitMQ + WebSocket + XXl-Job + ElasticSearch + Sharding JDBC + Seata + Sentinel + Vue + Element UI
架构说明:该项目采用微服务架构对业务模块进行拆分,服务之间的异步调用使用RabbitMQ队列消息进行处理。
网关模块:使用Gateway整合Sa-Token进行鉴权拦截,搭配Sentinel对请求接口进行限流和监控,同时使用自定义过滤器对接口进行验签和时间校验,保证请求的安全性。
登录鉴权模块:使用Sa-Token对多途径登录进行整合,同时兼容账号密码登录、验证码登录、手机号一键登录登多种登录途径,对用户信息进行统一封装和鉴权。
拼团模块:主要处理用户拼团业务, 为了确保在分布式环境下的数据一致性,使用分布式锁Lock4j进行相关加锁操作。对于页面的实时展示方面采用WebSocket进行长链接实时渲染,该模块还提供了实时查询卡价的功能,由于卡价数据量较大,数据库的存储采用ShardingJDBC进行分库分表,且考虑到用户的使用模式,整合了ElasticSearch进行多分词方式的搜索展示。由于业务需要,拼团成功之后商户需要进行直播操作,此处整合即构三方直播工具进行实现。
数字资产模块:数字卡业务对接国家可信版权链,将数字版权资产卡采用盲盒形式进行销售,设计了一整套盲盒抽奖算法,采用分布式锁和Redis对于库存进行安全性校验。
支付模块:鉴于本业务的支付渠道较多,且涉及到为多商户进行金额结算,本系统将支付结算业务单独进行封装,统一整合了支付宝分账、微信分账及其他三方平台支付渠道,并出具各类流水报表。
消息任务模块:鉴于本系统中大量使用了MQ消息,因此单独拆分出该模块对MQ消息进行统一消费,同时本模块中整合了分布式定时任务组件XXL-Job对定时任务进行统一管理。