首页 > 其他分享 >项目总结点

项目总结点

时间:2023-06-04 15:22:26浏览次数:30  
标签:总结 回滚 缓存 项目 redis 商品 机房 支付

电商业务

 

功能:商家入驻、店铺管理、用户登录注册、商品的属性,管理,上下架。

模块:购物车,导购,营销,交易,支付,配送,售后。

主要开发的系统:交易、支付系统。商品系统和交易比较核心。

 

架构方案:

 系统架构维度:业务架构,选型。流量入口,数据治理,数据选型。

  画一下架构图

 

  • CDN:内容分发网络,有cache的功能;也可以不设置cache功能,所有请求都设置成回原。
  • LVS1机房挂了,直接起到LVS2,是瞬时的切换,比较高效。
  • NGINX反向代理,上层要配LVS做代理模型。LVS通过网络层代理,LVS会把公网IP配置到CDN上。
  • 代理到后端机房之后---后端服务治理问题
  • springcloud技术,eureka(多机房部署时要支持多机房的发现,还是需要改造,同事会破坏机房隔离性,查问题不方便。所以现实中,eureka还是每个机房自有的。),zuul、hystrix
  • 商品服务、交易服务
  • 数据层,mysql数据库。nosql数据服务es数据存储使用。redis缓存服务。
  • mysql做分库分表

 

  商品查询交互

  • 接口 - 商品服务 
    • 秒杀高QPS
      • 缓存
        • 商品主信息查询,失效时间长一些,1hour
          • 什么样的内容存redis:商品、运费、类目、品牌模型
          • 更新方式:商家接口更新数据库,再异步更新缓存,
          • 1.缓存可以直接删除,等待下一次读
          • 2.更新缓存同时
        • 价格、库存、销量,要实时更新。
          • 另存一个redis,缓存更新,数据一致性问题。
          • 下单后,异步不可以,要实时扣减。
          • 库存
          • 1.引入队列系统,聚簇作用,发生交易之后,推送销量更新消息,这个消息5s统一处理一次就行。
          • 价格
          • 1.实时性高时,商品价格服务,修改价格时,同步修改价格redis。
          • 2.价格用的redis
            • 平销的普通价格
            • 活动价格
    • 一个是查主题内容。一个时查询详情内容。

  业务结构:

  • 商品查询
    • 领域模型思想
      • 商品基础、品牌、类目、库存、详情描述、销量、价格、运费。
      • 商品模型
      • 品牌模型
      • 库存模型、库存数量、分仓、详情
      • 销量模型、数量、
      • 价格模型
      • 运费
  • 交易下单
    • 业务单
      • 订单ID
    • 主子单
      • 多个商品单,在一个订单里
      • 每个子单有商品ID和商品数量
    • 支付单
      • 一个订单会有多个支付订单,会存在支付失败的,或者联合扣款
    • 营销工具
      • 优惠券ID,活动ID,这个放到主单里也可以。
    • 下单流程
      • 商品系统校验价格
      • 库存扣减
      • 运费计算
      • 营销优惠计算,扣减优惠券
      • 支付
        • 发起支付
        • 支付宝下单
        • 支付宝支付成功回调
        • 消息接收
        • 支付成功、失败、30min超时
      • 保存订单
    • 回滚30min支付超时,异常回滚,主动退单
      • 回滚库存
      • 回滚优惠券

 

标签:总结,回滚,缓存,项目,redis,商品,机房,支付
From: https://www.cnblogs.com/jiangym/p/17455723.html

相关文章

  • 利用Ant与Proguard混淆引用的子工程项目jar包及打war包
    当前的web项目有引用到子工程项目,而且多个子工程项目也有引用到其它的工程项目,现要求利用Ant自动将web项目打包成war包,其中引用到的子工程项目需打成jar包,而且必须是混淆后的jar包。其中混淆代码的工具选择了开源的Proguard([url]http://proguard.sourceforge.net/[/url]),可以运行p......
  • 35 个你也许不知道的 Google 开源项目
    [b][color=red]以下是原文的复制,缺少许多超链接,最好查看原文,方便查看超链接内容.[/color][/b]Google是支持开源运动的最大公司之一,它们现在总共发布有超过500个的开源项目(大部分都是利用它们的API来完成),本文将列举一些有趣的开源项目,其中很可能有不少你不知道的哦。文本文件处......
  • hibernate------hql总结
    第14章HQL:Hibernate查询语言[url]http://www.redsaga.com/hibernate-ref/3.x/zh-cn/html/queryhql.html[/url][url]http://kuangbaoxu.iteye.com/blog/193076[/url][color=red][b]1.查询整个映射对象所有字段[/b][/color]//直接from查询出来的是一......
  • 数据结构与算法-技巧类型题总结
    目录排序逆序排序逆序查询后矩阵的和......
  • 几个隐写题目的总结
    在几个比赛中以及网上汇总了几个隐写题目,都是关于图片的,所以为了以后的比赛可以写出一些脚本来备用,弥补stegsolve等隐写工具的不足。第一个题目题目是如图所示一个图片一堆杂色,隐隐约约好像有字,看了看元数据里没啥东西,binwalk也没隐藏啥东西,改了改高度也没隐藏的信息,用Stegsolve看......
  • 微软Playwright-UI自动化中常用方法总结-java
    经过多天对微软自动化框架Playwright的使用,发现还没有讲该框架的常用方法,比如定位、按键等操作使用。今天我们正好来说说。  一、鼠标类操作     1.单点      .click();   click(Stringselector){                          ......
  • 极客时间--golang并发编程实战课--Mutex学习总结
    互斥锁的实现机制互斥锁是并发控制的一个手段,是为了避免竞争而建立的一种并发控制机制。在并发编程中,如果程序中的一部分会被并发访问或修改,那么,为了避免并发访问导致的意想不到的结果,这部分程序需要被保护起来,这部分被保护起来的程序,就叫做临界区。可以说,临界区就是一个被共......
  • 阅读总结《刻意练习》
    总体来讲,没有多大帮助。也没完全总结完6/10,没有完全看完5/6。但是意思就是以下了。反反复复说的内容。不同专业领域的技能获得的时间与练习时间并不存在一个1万小时的最低阈值。天赋虽然在其中不起决定性作用,却也会是一大影响因子。练习的成果并不与时间成正比,这一点也取决于练......
  • 由“Jasperrpeorts 4.1.2升级到5.1.2对flex项目的解析”到AS3 带命名空间的XML的操作
    项目中,对Jasperrpeorts-4.1.2核心包进行了升级,发现,前端flex无法对Jasperrpeorts的格式进行解析了~iReport4.1设计的模版可以解析,而iReport4.6设计的模版就不行了~断点后,对比了从后台传过来的Jasperrpeorts的xml数据,发现存在差异 4.1.2包生成的xml数据jasperPrint标签......
  • 2022-2023 java高级面试总结
    1.Java内存模型是什么?JMM即Java内存模型(Javamemorymodel),在JSR133里指出了JMM是用来定义一个一致的、跨平台的内存模型,是缓存一致性协议,用来定义数据读写的规则。Java内存模型规范java如何按需禁用缓存和编译优化的方法。2.mysql查询第一万条数据后20条数据,sql语句如何写?sel......