最近抽空优化了之前已有的redis分布式锁,主要用于解决高并发的问题,比如抢红包,多个人同时操作红包库存,当在库存只剩下1个的时候,一个人的减库存的操作事务没提交,另一个人的查库存操作刚好同步执行,这样就会出现很尴尬的事情,1个红包会被2个人抢走,这个时候,我们就要依托锁,将请求入口锁住,当然锁有很多种方式,这边就记录一下比较好用的redis分布式锁。方式有很多setNX、set、incr等等,s
分类:
其他好文 时间:
2018-12-19 17:05:04
阅读次数:
146
我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举个例子,我们假设处理一个业务请求平均响应时间为100ms,同时,系统内有20台Apache的Web服务器,配置MaxClients为500个(表示Ap ...
分类:
Web程序 时间:
2018-12-14 19:23:35
阅读次数:
222
上述代码是AbstractQueuedSynchronizer中关于如何往Node中添加尾节点的代码,使用的CAS自旋volatile变量法,解决高并发下插入尾节点不同步问题。 1.假如尾节点为空,说明节点队列为空,初始化一个头结点指向尾节点的队列; 2.继续for循环,这次进入else中,先把插入 ...
分类:
其他好文 时间:
2018-11-28 00:24:22
阅读次数:
231
一、Redis介绍 Redis是NoSql的一种。 NoSql,全名:Not Only Sql,是一种非关系型数据库,它不能替代关系弄数据库,只是关系型数据库的一个补充,是可以解决高并发、高可用、高扩展、大数据存储等一系列问题而产生的数据库解决方案。 Redis是使用c语言开发的一个高性能键值数据库 ...
分类:
其他好文 时间:
2018-11-24 22:22:20
阅读次数:
184
(一)分布式的优点 1 解决高并发 2 容易定位bug 3 Cart模块部署多份,order只部署一份 4 单独发布 (二)实现分布式有两种实现方法 第一种 : 用httpClient 第二种 : 用dubbo (三) 引入 Zookeeper 3.1 自己把它记为动物园拥有者, 下面来用图解释引入 ...
分类:
其他好文 时间:
2018-11-17 12:00:30
阅读次数:
160
spring的介绍? 设计模式你知道多少,项目中有哪些地方有应用? 权限是怎么做的? 有没有用过线程? mysql或者oracle中有没有用过函数? 项目中是怎么解决高并发的? 怎么样做数据同步? 有没有写过aop? jquery如何选中多选框的值? java中的定时任务? ...
分类:
其他好文 时间:
2018-10-14 23:58:52
阅读次数:
268
python 提供了2种方法解决该问题的问题:1,悲观锁;2,乐观锁 悲观锁:在查询商品储存的时候加锁 select_for_update() 在发生事务的commit或者是事务的rollback时,自动释放该锁,这样其他用户就可以接着查询该商品。 乐观锁:乐观锁不是真正的锁,在创建订单之前查询商品 ...
分类:
编程语言 时间:
2018-10-09 20:06:39
阅读次数:
248
当前在互联网+的大潮下,众所周知淘宝、京东这些交易系统每天产生的数据量都是海量的,每天的交易并发也是惊人的,尤其是“双11”、“6.18”这些活动,对系统的峰值响应提出了非常高的要求,所以对系统架构也就有了很要的要求。 在写这篇博客的前2天,听说某系统在25人的用户量下就宕机了,实在让人震惊,所以捋 ...
分类:
其他好文 时间:
2018-10-07 22:02:59
阅读次数:
154
一文中已经提到,企业在解决高并发问题时,一般有两个方向的处理策略,软件、硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中web服务器前面一层最常用的的添加负载方案就是使用nginx实现负载均衡。 一、负载均衡的作用 1、转发功能 按照一定的算 ...
分类:
其他好文 时间:
2018-09-30 18:10:02
阅读次数:
159
linux作为服务器系统,当socket运行高并发TCP程序时,通常会出现连接建立到一定个数后不能再建立连接的情况 本人在工作时,测试高并发tcp程序(GPS服务器端程序),多次测试,发现每次连接建立到1000左右时,再也不能建立tcp连接,最总上网搜索,linux系统默认ulimit为1024个访 ...
分类:
系统相关 时间:
2018-09-30 13:00:07
阅读次数:
166