专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

为什么有些客户觉得让程序员抄一个淘宝很简单_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 16:16:35       共计:3598 浏览

为什么有些客户觉得让程序员抄一个淘宝很简单?

大概因为他只能看到查询,下单,结账这三个功能,而看不到背后涉及到的高并发,事务,数据不一致,大数据存储与查询等等场景带来的风险。

接下来,我们简单分析下这些风险。

高并发

这个和12306卖火车票有点像,既然是卖东西,就势必涉及到数据一致性的问题。如果一个产品只剩下最后一件了,,但是此时有两百个各自独立的线程跑过来说我要下单结账,那么这最后一个该给谁呢。我们说的再详细一点,购买的逻辑简要的过程如下:

1 将产品放入购物车,此时只要产品余量不为0,就可以执行成功,也就是说,就算此时产品只剩下1件,也可被200个人放入购物车。

2 点击结算,发送请求到服务器,生成订单

3 将订单返回给用户,由用户确认订单信息无误后

4 用户发起结账请求

5 网站与银行沟通,申请扣款

6 银行反馈扣款成功

7 告知用户订单结账完毕

这个过程有两个点非常重要,分别是

a)生成订单,即如果此时200个请求来抢同一个产品,那么就会涉及到数据一致性,通常需要用分布式锁来解决,

b)与银行通信过程其实并不是原子的,因此需要保证这个过程的原子性,并且不会出现明明已经扣款,却显示失败等让用户恐慌的情况。

大数据存储与查询

淘宝每天的查询并发量难以估计,而不算成交量,仅仅是把这些数据写入“我的足迹”这里,每天涉及到的数据存储都是非常可怕的。不仅如此,有存储就有对应的查询,这已经不是一个简单的创业公司用一个MySQL+redis就能实现的了。想象一下你打开淘宝,查看自己的订单/足迹的时候,那其实是从浩如繁星的数据中,火速帮你精确找出来的啊。

因此,对于不懂技术的老板来说,微信,淘宝,百度搜索引擎,都是很容易抄的,人家都做出来了,你抄一抄就好了嘛。

以上是我的浅见,欢迎各位在下方评论区吐槽留言。

我是苏苏思量,来自BAT的Java开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:mysql 查询选择性,mysql怎么查询不同岗位类型的人数占比语句_数据库 | ·下一条:mysql走索引查询过程,唯一索引与索引区别是什么_数据库

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有