微服务电商秒杀系统 (2)

7、队列操作:当支付成功之后,将秒杀成功详情写入 rabbitMQ,订单服务进行监听接收消息写入订单,库存服务进行监听接收消息减少库存。

8、时间服务器:页面服务端通过负载进行布署,各服务器时间可能会不一致,因此增加时间服务,来提供统一的时间。

2.4. 技术架构

微服务电商秒杀系统

整体架构图:

Eureka Client:

时间服务(端口号8000):为页面服务提供时间统一的接口。

商品服务(端口号7000):对外提供的接口(商品列表、商品详情、秒杀政策)。

库存服务(端口号6001):队列监听,在队列中提取消息与数据库交互减少库存。

会员服务(端口号5000):为页面服务提供会员数据接口,会员的添加、修改、登录。

订单服务(端口号4000):队列监听,在队列中提取消息与数据库交互生成订单。

页面服务(端口号3000):为前端页面提供数据接口。

Eureka Server:

注册中心(端口号9000):各服务都在注册中心进行注册。

配置中心 :提供所有服务需要的配置。

Redis的应用:

微服务电商秒杀系统

缓存商品数量、秒杀政策。

商家对秒杀政策、商品限量进行设置,设置完成写入Redis。

消费者访问商品详情,提交订单之后,从Redis中减少商品数量。

Redis里存取内容:

1、在政策新增的时候存入,key的值为:LIMIT_POLICY_{sku_id},value的值为政策内容

2、商品列表取数据时,通过key(LIMIT_POLICY_{sku_id}),取出政策内容。

3、政策到期之后,自动删除。

 

RabbitMQ的应用:

微服务电商秒杀系统

消费者提交订单,自动写入订单队列:

订单队列:订单服务监听订单队列,接收到消息之后将队列信息写入数据库订单表。

消费者付款之后,更新订单状态,更新成功之后写入库存队列

库存队列:库存服务监听库存队列,接收到消息之后将库存信息写入数据库减少库存。

2.5. 数据库结构 

微服务电商秒杀系统

微服务电商秒杀系统

关注本博客微信公众号

微服务电商秒杀系统

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfwzp.html