谷粒商城

我要开发同款
proginn09073400292023年03月13日
223阅读
所属分类 PC网站

作品详情

该系用采用 SpringCloud 架构,利用 SpringBoot 构建应用,Nacos 作为服务的注册、配置中心,Gateway 作为服务网关,OpenFeign 实现与其他模块进行交互,分布式事务使用 seata和 RabbitMQ 延迟队列,Redis 作为缓存,MySQL 进行持久化,MyBatisPlus 作为持久化框架。
责任描述:
1.负责会员服务模块
2.负责商品服务模块
3.负责购物车服务模块
4.负责订单服务模块
5.负责支付宝支付模块
技术实现:
会员服务模块:
除账号密码登陆外,可以使用微信进行登陆,使用 OAuth
2.0授权获取用户相关 openid ,使用 openid 关联会员服务账号信息
使用 Reidssession 将用户信息保存在 session 并将 session 作用域扩大到父类实现在整个项目中保存用户信息。
商品服务模块:
使用 springcache 将商品信息保存到 redis中,使用 Feign 与其他服务通讯,在商品详情中防止等待时间过程,使用 completableFuture 异步线程编排提高响应时间
购物车模块:在浏览器第一次访问购物车时(不管登陆没登录)给浏览器保存一个 use-key 作为用户的一个临时购物车,将购物车里的信息与之绑定,如果是没登录的用户在登陆之后还需将临时购物车数据和用户购物车合并。
订单服务模块:
使用 RabbitMQ 实现分布式事务,保证订单信息和库存信息一致,创建订单是向死信队列(30分钟过期)发送订单信息,过期之后消息发送到库存解锁队列,库存信息监听这个队列根据逻辑判断是否回滚,如果是自动取消订单,那么直接给库存解锁队列发送消息,如果订单支付成功,则给成功队列发送消息,防止库存锁定之后订单服务崩溃,在库存锁定后也需要给库存解锁的死信队列(50分钟过期)发送消息.同时为了避免消息的丢失,在消息发送确认的回调里,将消息存入数据库中,然后在定期将异常消息重新发送,同时开启手动 ack 模式,为了避免消息重复,发送消息时带上业务的唯一标识,除了过就不再处理
支付宝支付模块:
使用支付宝支付 api ,需申请公网 ip ,根据支付文档配置相关配置,在异步回调中验签,并验证交易金额,在全部逻辑处理完给支付宝返回success
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论