秒杀活动 在一般的网络商城中我们会经常接触到一些高并发的业务状况,例如我们常见的秒杀抢购等活动, 在这些业务中我们经常需要处理一些关于请求信息过滤以及商品库存的问题. 在请求中比较常见的状况是同一用户发出多次请求或者包含恶意的攻击,以及一些订单的复购等情况. 而在库存方面则需要考虑超卖这种状况. 下面我们来模拟一个简单可用的并发处理. 直接上代码 代码的流程 1.模拟用户请求,将用户写入redis队列中 2.从用户中取出一个请求信息进行处理(可以在这个步骤做更多的处理,请求过滤,订单复购等) 3…
当客户端与ServerSocket产生连接时,会产生一个 AE_REABLE / AE_WRITABL 事件, 多个Socket可能并发产生不同的事件,IO多路复用程序会监听这些Socket,按照顺序将这些Socket放到队列中排队.然后每次从队列中取出一个Socket来进行相应的操作.(这种io多路复用+事件驱动模式,在redis和netty中得到了很好的应用) *IO多路复用:可以参考我的这篇博客https://www.cnblogs.com/wlwl/p/10293057.html 下面举…
简单了解下ab ab全程是apache benchmark,是apache官方推出的一个工具,创建多个并发访问线程,模拟多个访问者同时对一个URL地址进行访问.它的测试目标是基于URL的,因此它既可以来测试apache的负载压力,也可以测试Nginx等服务器的压力. ab压力测试需要注意哪些? 测试的注意事项:测试机器与被测试机器要分开,别在同一台机器上测试,否则结果是不准确的不要对线上的服务器做测试,否则挂了就不好了哦.观察测试工具ab所在的机器,以及被测试的前端机器的CPU,内存,网络等都不…
[本人原创],欢迎交流和分享技术,转载请附上如下内容:如果你觉得这篇文章对你有帮助,请记得帮我点赞, 谢谢!作者:kevin[转自]http://www.cnblogs.com/itshare/ 很多时候,我们常常会需要给系统构造不同的流水号,并且不希望它出现重复数据,有很多方法能够实现这个需求. 但是,我们希望方法是能够动态支持不同业务场景.跨语言和操作平台,支持服务水平扩展. 一.需求描述: 1.  每天的不同业务的流水号 (每天从1开始) 2.  永久的不同业务的唯一标识 (历史从1开始)…
Redis实现简单延队列, 利用zset有序的数据结构, score设置为延时的时间戳. 实现思路: 1.使用命令 [zrangebyscore keyName socreMin socreMax] 会返回已score排序由小到大的一个list 2.list非空则使用[zrem keyName value]  删除第一个元素, 删除成功即代表消费成功, 可以解决多线程并发消费的问题. 使用jedis实现代码: package com.nancy.utils; import com.alibaba…
大家还记上篇博文https://www.cnblogs.com/itshare/p/8643508.html,测试redis构造流水号的tps是600多/1s. 这个速度显然不能体现redis 集群在缓存速度的优越性,我当时猜测是使用的这台测试redis集群的网路延迟性导致的. 时隔一个月之后,我自己用三台VM搭建了本地网络的redis sentinel集群,测试结果果然如此. 相同代码,使用我本地网络的redis sentinel集群构造流水号速度是0.2ms每个(并发速度 5926次/1s)…
<?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); $redis->flushall(); $redis->rpush('mylist','1'); //先进先出 $redis->rpush('mylist','2'); $redis->lpush('mylist','3'); //加急 $redis->rpush('mylist','4'); echo $redis->llen('m…
测试初期 Client VM 的延迟结果正常: 测试后期 Client VM 的延迟偶尔突增/连接失败,越后期超高延迟(比如 30 秒)出现越多: 问题分析 造成这一现象的根本原因很可能是 SNAT(Source NAT)数量过高. 什么是 SNAT 呢? 对于 ASM 虚拟机,出于可拓展性的考虑,云服务中每台虚拟机都隐藏在云服务面向公网的 VIP 之后,各自有自己的 DIP. 对于 ARM 虚拟机,默认会分配一个面向公网的 VIP 和一个面向内部的 DIP.用户可以自定义设置,不为 ARM 虚…
ab是一种用于测试Apache超文本传输协议(HTTP)服务器的工具.apache自带ab工具,可以测试 apache.IIs.tomcat.nginx等服务器 但是ab没有Jmeter.Loadrunner那样有各种场景设计.各种图形报告和监控,只需一个命令即可,有输出描述 可以简单的进行一些压力测试   一.Mac下自带apache 查看版本 apachectl -v 以请求百度为例:http://httpd.apache.org/docs/2.4/programs/ab.html 详细说明…
tsung是用erlang开发的一款简单易用的压力测试工具,可以生成成千上万的用户模拟对服务器进行访问.目前对tsung的理解也仅限于会简单的应用,其内部结构没有深入研究过. 1.安装 tsung是用erlang编写的,所以首先安装erlang的运行环境.然后就是按照tsung的官网下载编译tsung.需要注意的是,生成测试报告需要gnuplot和perl的支持,其中perl需要安装Template扩展.具体安装过程请看相关手册或者google之. 2.配置文件 默认情况下,tsung会加载配置…