前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单体秒杀服务转dubbo框架+分布式事务实现

单体秒杀服务转dubbo框架+分布式事务实现

原创
作者头像
用户3597728
发布2022-03-14 23:14:18
5470
发布2022-03-14 23:14:18
举报
文章被收录于专栏:dubbo

方案和技术架构

方案:秒杀方案(

[之前单体服务项目] https://blog.csdn.net/qq_17236715/article/details/122333668?spm=1001.2014.3001.5502

)+ 分布式事务解决方案 (为了让支付、扣减库存和订单状态一致性解决方案,见下图)

目的: dubbo 微服务化 实现订单支付分布式事务,统一提交和回滚

技术架构:

docker + nacos 架构 (舍去zookeeper,nacos更香)

docker 版本 2.7

springboot 版本 2.6.1

分布式事务(tcc -transaction 1.73)

github地址:https://github.com/luozijing/miaoShaPractice/tree/main/miaosha1/aircraft-web

项目体验地址:http://81.69.254.72:9082/login/to_login

dubbo模块拆分

模块根据上图拆分成admin(web controller 和前端页面入口) + 订单 (秒杀订单+库存)+ 用户(支付、用户表)。

其中order和users模块都是分成两个子模块,api和provider模块,api负责提供dubbo的接口和实体类,providers负责提供api的实现,以及相关内部逻辑。

其中还有一个common的公共模块,提供公共工具类,包括redis连接、zokeeper连接等工具类等。

功能介绍

用户注册与登录

用户注册自己的手机号格式的账号id,密码至少为6位,并且该账号会初始化2000的虚拟账户,用户后续的订单支付。

注册后可以登录,显示秒杀界面,进行选择商品秒杀,每类秒杀商品不超过一个。

测试账户 15712341234/1234567

秒杀与支付

选择商品进行秒杀后,可以查看生成的订单,订单会锁定秒杀的库存,但不会真正扣减库存。

进行虚拟支付,之后会真正扣减库存,修改订单状态,减少虚拟账户金额,具体可以查看页面库存的变化

线上部署

服务器:tx云 2c4g轻量服务器,1200G流量,

操作系统用:系统的自带的docker的CentOS7.6-Docker20

部署模块:

根据实际服务器配置,配置好java模块的内存大小,以及配置服务器swap内存,保证服务的稳定运行。nacos 配置了512M,dubbo 模块基本没有业务配置了128m,新生代都是一半。docker 一键化部署的配置在github中有,不过dubbo模块需要自行编译到服务器中启动。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 功能介绍
    • 用户注册与登录
      • 秒杀与支付
      • 线上部署
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档