本篇和大家分享的是一个 并发请求工具,并发往往代表的就是压力,对于一些订单量比较多的公司这种情况很普遍,也因此出现了很多应对并发的解决方案如:分布式,队列,数据库锁等: 对于没有遇到过或者不可能线上来处理并发问题的我们来说,需要模拟这种环境,不错这就是写并发请求工具的目的: . 对于api接口做并发请求 . NetCore来写的能跨平台运行 . 允许配置多个目标地址,进行同时并发请求 . 支持Get,Post请求方式(post参数支持:xml,json格式) 工具设计的原理 工具的全部代码都开源…
前言:项目开发用到了Redis,但是在调试Redis数据的时候,没有一款通用的可视化管理工具.在网络找了一些,但是感觉功能上都不尽人意,于是决定抽出一点时间,开发一个用起来顺手的Redis管理工具.秉承自己开发的小工具一贯的风格,首先是要尽可能绿色单文件,尽量不依赖其他文件,然后是容易部署. 这样才能方便在项目中提高生产力! 简介:SuRedisAdmin_PHP是一个用于在线管理Redis内存数据库的单文件绿色版PHP程序,和phpinfo.php一样可以方便放到项目中使用. 开发项目过程中,…
前言:项目开发过程中,网站一般部署到远程服务器,所以文件管理就不能和本机操作一样方便.通常文件管理是用ftp下载到本地,修改后再上传,或者远程登录到服务器进行修改.但是这些操作都依赖于复杂的第三方软件.如果只是想简单修改网站中一个页面中的文字,或查看文件代码,相对于繁琐的使用第三方软件进行操作的流程,如果有一个小程序能在线操作文件,那就能方便快速达到自己的需求了.所以,SuExplorer就是在这样的需求中被开发出来.秉承自己开发的小工具一贯的风格,首先是要尽可能绿色单文件,尽量不依赖其他文件,…
电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要.这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因? 一.大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战.如果Web系统不做针对性的优化,会轻而易举地陷入到异常状态.我们现在一起…
一说到写日志,大家可能推荐一堆的开源日志框架,如:Log4Net.NLog,这些日志框架确实也不错,比较强大也比较灵活,但也正因为又强大又灵活,导致我们使用他们时需要引用一些DLL,同时还要学习各种用法及配置文件,这对于有些小工具.小程序.小网站来说,有点“杀鸡焉俺用牛刀”的感觉,而且如果对这些日志框架不了解,可能输出来的日志性能或效果未毕是与自己所想的,鉴于这几个原因,我自己重复造轮子,编写了一个轻量级的异步写日志的实用工具类(LogAsyncWriter),这个类还是比较简单的,实现思路也很…
有时需要测试一下某个功能的并发性能,又不要想借助于其他工具,索性就自己的开发语言,来一个并发请求就最方便了. java中模拟并发请求,自然是很方便的,只要多开几个线程,发起请求就好了.但是,这种请求,一般会存在启动的先后顺序了,算不得真正的同时并发!怎么样才能做到真正的同时并发呢?是本文想说的点,java中提供了闭锁 CountDownLatch, 刚好就用来做这种事就最合适了. 只需要: 1. 开启n个线程,加一个闭锁,开启所有线程: 2. 待所有线程都准备好后,按下开启按钮,就可以真正的发起…
有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了.如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩. CountDownLatch和CyclicBarrier是jdk concurrent包下非常有用的两个并发工具类,它们提供了一种控制并发流程的手段.其实查看源码它们都是在内部维护了一个计数器控制流程的 CountDownLatch:一个或者多个线程,等待其他多个线程完成某件事情之后才能执行: Cycl…
目录 go-channel处理高并发请求 一.Channel简介 二.处理包并发请求 三.测试 1.测试工具 2.测试结果 go-channel处理高并发请求 最近看了一篇文章讲解怎样使用go-channel的,周末就花了点时间学习了一下,文章原文地址: http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/ ,然后自己进行了一个简单的性能测试. 一.Channel简介 下面是go by examp…
Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 build.gradle.中添加: dependencies { compile 'com.wang.avi:library:2.1.3' } 然后在xml中使用: <com.wang.avi.AVLoadingIndicatorView android:id="@+id/avi" and…
不知道你是否在工作中有遇到过类似情况: dubbo接口调试复杂,需要通过telnet命令或者通过consumer调用来触发. telnet语句参数格式复杂,每次编写都要小心谨慎,一旦出错又需重来. 复杂对象参数传参调用接口复杂,编写java api调用接口时间成本较高. 上述这些坑我在工作中都有遇见过,发现大部分耗时都会卡在调用dubbo服务做自测的阶段,所以后来花费了写业余时间写了一款高效的dubbo测试工具开源给大家使用. 这款工具目前已在实际工作中应用半年多,基本功能已经成熟,后续依旧会进…