20170815上午学习心得

今天看了一上午别人的技术博客,感觉需要学习的东西还有很多,深深体会到学海无涯的意义。简单记录下上午的心得,以及安排未来的计划。

1、电商秒杀系统的设计

看完了别人的介绍,才知道这种高并发请求对技术的高要求,同时也觉得12306网站的牛逼之处,同时要处理如此多的并发,牛逼啊! 我今天体会最深的一点就是高并发引起的超发问题。比如要抢购商品的总数是100,现在已经抢完了99件,还剩一件,这时同时来了几个请求,那这几个请求都发现还剩一个,都同时处理,这时候就出现了严重的问题,最后一件商品到底是谁抢的呢?针对这种超发问题有很多的解决方案:

1.悲观锁

即来了一个请求,就把数据处理锁住,只有这个请求完成之后,才处理下个请求,这种处理方式对于高并发来讲处理速度很慢。

2.先入先出队列

即将请求加入到队列中,时间早的就会优先处理。这种方式的主要问题就是如果并发量非常大的情况下,就会引起队列爆了。因此也不是最优的解决方式。

3.乐观锁

Redis的watch就实现了乐观锁的功能,其逻辑就是我会监控一个相关的key,比如商品总量,当我在处理请求的时候,发现这个key被其他的客户端修改了,那么就不去执行后续的事务,这样就避开了超发的问题。

..............................................分割线............................................

今天又深刻地体会到了学习真是没有止境啊,永远都会有你需要学的知识,更何况对于我这种半吊子人来说。我接下来还有很过工作要做:

1、使用django-social-auth实现第三方登录我的网站;

2、部署监控系统,实现对网站的监控。sentry,statsD,Graphite;

3、新增用户数,日UV,日PV统计工作;

4、电商系统。目前已经使用现成的轮子django-oscar完成了基本的电商搭建,但需要自己做的东西还有很多,我要实现一个自己的电子商城网站,同时解决个人支付问题。

--------EOF---------
本文微信分享/扫码阅读