原文:订单系统开发(仿淘宝和美团网) 之 项目总结(降低数据库并发量)

  

  继上一篇"订单系统开发(仿淘宝和美团网) 之 项目总结(一)",这篇博客重点想说下订单系统开发的设计和有待优化改进的问题。

  

  

    

  

  上图是订单系统数据库设计比较重要的一个——其决定了订单数据的横向切割,而不是将所有的订单数据都存放在一个表中。为什么要这样设计?这样做有什么好处?(看下文便可知晓)  回答上面的疑问,我感觉有必要引出另外一个问题:对于数据库设计,如何能降低并发量 或 提高数据的读写数度?我所知道和比较常见的做法如下:——

  1.读写数据库分离,了解数据库的都知道:数据库的(读)共享锁S和(写)排它锁(X)是互斥、无法共存的,即当一个表的数据在被修改时,会阻止其它用户的读取。  

  2.数据库表的横向(行数据)和纵向(数据列)切割。  

  3.对于基本上不会用户查询的多个列,可以使用json或二进制等压缩序列化列字段存放数据,这样有点儿类似于Google的Big Table,有助于提高查询效率。

  以上除了第一点在本次订单系统开发中都有使用,而且我相信你看完了上图,你应该会感觉到这样的数据切割:数据的存放(位置)比较清晰,比如:对于‘未付款’的订单数据,它一定是存放于Order_OrderInfo_Temp表中,这样:用户在搜索订单状态为“未付款”的订单时,可以很快方便的从此表中查询;或当用户在进行“取消交易”的操作时,基于上面第一点所提到的,它不会影响到处于'交易中'的订单用户的操作。

  

  

  写到这儿,感觉有点儿戛然而止——不知道该写点儿啥了;回顾这个项目的开发历程,模糊→清晰→迷茫→纠结→释然,这就是我在项目的各个阶段的感受,用一句话来形容就是:由最开始的感觉高山仰止、举步维艰,到现在的“神马都是浮云”,困难都是暂时的,等你越过去(把它踩在脚下),你也就感觉那算不上什么。

  现在只想谈下,有待优化和比较棘手的地方——

  1.目前的订单系统跟支付系统的相互依赖程度比较高,以至于订单的各个阶段的操作,如:付款,买家确认收货...,都需要调用支付系统的服务,以保证两边数据的同步。

  2.由于支付系统是基于第三方支付平台相关服务方法的封装,即支付系统对“现金”进出操作只相当于是个通道,无法控制和保证每个操作的成功。

  3.基于以上两点,订单系统与之交互的操作就比较被动,让人感觉很不舒服,增大了程序的复杂度。

  4.订单和退款超时数据的处理,目前没有使用定时器或数据库job,暂时用几个触发点来代替,这样从服务到UI都增加了相应的代码处理。

   怎样让订单系统和支付系统尽可能的'解耦',这将是下一个版本需要重点解决的问题!

  就写到这吧,希望有这方面经验的朋友,能提些建议。

订单系统开发(仿淘宝和美团网) 之 项目总结(降低数据库并发量)相关推荐

  1. 订单系统开发(仿淘宝和美团网) 之 项目总结(一)

    基于公司战略的调整和开发框架的升级换代,也伴随着SOP(面向服务编程)和SOA(面向服务架构)的软件开发思想在公司开发团队中的慢慢深入,最终讨论决定在将现有(旧)的支撑公司业务的项目模块(如:产品,商 ...

  2. 微信小程序的订单评论页面-仿淘宝

    微信小程序的订单评论页面-仿淘宝 在网上搜了下,大部分都挺麻烦的,所以自己写了个,感觉还可以 先看效果图: 需要用到的图片: 上代码: wxml: <view class='contains'& ...

  3. 使用WEX5移动开发工具制作仿淘宝APP

    毕业设计-使用WEX5移动开发工具制作仿淘宝APP 系统设计的意义 本课题来源于对日常逛超市.购物的生活体验和指导老师的提示.本系统是基于 WeX5的仿淘宝App系统,它商家们提供了一个更广阔的商品推 ...

  4. javah5仿淘宝购物系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署

    javah5仿淘宝购物系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 javah5仿淘宝购物系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构 ...

  5. java计算机毕业设计h5仿淘宝购物系统源码+数据库+系统+lw文档

    java计算机毕业设计h5仿淘宝购物系统源码+数据库+系统+lw文档 java计算机毕业设计h5仿淘宝购物系统源码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  6. java计算机毕业设计h5仿淘宝购物系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计h5仿淘宝购物系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计h5仿淘宝购物系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B ...

  7. 订餐系统之获取淘宝外卖订单

    当时的情况是这样的:我们一个客户用了我们的订餐系统,也在淘宝外卖上开了店,但是订餐系统中的订单都要通过调度系统,根据配送员的位置,把订单发送给合适的配送员,所以要把淘宝外卖的订单加到订餐系统中(据说淘 ...

  8. java B2B2C 仿淘宝电子商城系统-Spring Cloud Feign的文件上传实现

    在Spring Cloud封装的Feign中并不直接支持传文件,但可以通过引入Feign的扩展包来实现,本文就来具体说说如何实现.需要JAVA Spring Cloud大型企业分布式微服务云构建的B2 ...

  9. java B2B2C Springboot仿淘宝电子商城系统-负载均衡之ribbon+feign

    一. feign简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单.使用Feign,只需要创建一个接口并注解.它具有可插拔的注解特性,可使用Feign注解和JAX-RS注 ...

最新文章

  1. GitHub 上有什么好玩的项目?(附地址)
  2. $(document).ready(function() {})不执行的问题
  3. javascript函数练习1
  4. C语言 共享库(动态库)制作
  5. 音视频技术开发周刊(第127期)
  6. 计算机网络基础:ISO/OSI网络体系结构知识笔记​
  7. 【CodeForces - 438D】The Child and Sequence(线段树区间取模操作)
  8. 厉害插件_2个相见恨晚的浏览器插件,让你的工作效率提升100%
  9. java链表对象_用Java实现链表结构对象:单向无环链表
  10. Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9
  11. arcgis面填充图案_如何将CAD里的图案填充导入ARCGIS中?
  12. plsql导出表结构到excel_plsql基本操作 复制表 导出表 导出表结构 及其导入
  13. 论一个女程序员的自我修养
  14. linux 下的文本处理——除去重复行uniq命令
  15. 解决phpmyadmin 访问卡慢等问题
  16. texstudio: 无法启动buildview:Xelate: xelatex.exe -synctex=1 -interacion=nonstopmode
  17. 【07月16日】A股滚动市净率PB历史新低排名
  18. 战地之王Awesonmium
  19. Unity3D学习笔记——RigidBody(刚体)
  20. MFC CImage图像失真的解决方法

热门文章

  1. 简述ospf的各种报文
  2. C#实现动态桌面背景图片切换
  3. Java Socket实战之一:单线程通信
  4. 浅谈CSS重构样式表性能
  5. 【SM2证书】利用BC的X509v3CertificateBuilder组装X509国密证书
  6. 空间索引 - GeoHash算法及其实现优化
  7. JSON数据序列化与反序列化实战
  8. 更新windows SID工具,对于虚拟机复制很有用
  9. Apache理论与实战
  10. 为什么Tomcat的webapps目录下新建的目录不能访问html文件?