java微服务电商系统_个⼈开源项⽬基于微服务的分布式电商
系统-妖猫商城
妖猫商城是⼀个采⽤微服务框架springcloud 实现的电商项⽬。
本项⽬实现了权限管理、商品管理(商品、属性、品牌、类⽬)等,并实现了商品详情页到⽀付的整个流程。
主要采⽤的技术如下:
redis:利⽤redis实现了微服务下的登录,商品详情页的缓存。
rockemq:利⽤rocketmq 实现了分布式事务
mongodb:利⽤mongodb存储购物车
nacos:注册和配置中⼼
sentinel: 降级、熔断、限流
zookeeper:分布式锁
等
分布式事务:异步消息解耦
交易创建成功后,订单、券、库存必须保证⼀致性,促销服务、商品服务、订单服务是分库部署的,传统单体的事务就不能满⾜要求了。这⾥采⽤基于消息异步回滚的⽅式,⾸先开始创建订单,订单的状态为不可见,然后进⾏锁券、减库存的操作,操作失败,发送回滚消息,下游的促销和商品服务收
到回滚消息,进⾏回滚操作。
⽀付的流程:
跳到⽀付宝⽀付成功后,⾸先更新⽀付记录的状态为成功,然后发送消息通知订单系统。
订单服务收到⽀付服务的通知,然后更新订单状态,发送订单成功消息,通知下游的服务做订单成功的处理。
消息的消费:
消费过程不能保证不出异常,这⾥做的⽅式是⾸先将消息存储到本地消息表,这时候消息队列的使命就完成了,然后后台异步的去处理消息。
定时任务去处理消费失败的消息,本地消息表⾥添加了⼀个处理次数的字段,当处理次数达到⼀定数量的时候,则该消息标记为死亡,待技术⼈员修复问题后,重新去处理该失败的消息。
其次消息的消费还要保证幂等性。
妖猫商城后台:主要实现了系统管理、促销管理、商品管理
系統管理包含⽤户、⾓⾊、资源。
资源分两种菜单和动作,菜单资源控制着前端的菜单是否添加路由并显⽰,动作控制着url和页⾯上的按钮是否显⽰。权限服务⾸先需要开启@EnableHttpAuth
@EnableHttpAuth
public class ProductConfig {
分布式和微服务的关系其次需要在配置⽂件上添加,这样该服务就开启了权限保护,接下来在后台接⼝上只需添加@LoginAuth("授权标识")permission:
enabled: true
前端的控制按钮的显⽰需要指令 v-action:授权标识 。
商品管理:分为类⽬、品牌、属性、商品添加、商品管理
后台类⽬:商品类⽬⼀般分为前端类⽬和后台类⽬,⽬前只实现了后台类⽬
品牌:品牌和商品类⽬是多对多的关系。
属性:属性分为销售属性和普通属性,销售属性影响商品的价格。
商品添加:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论