网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下,才能真正体现出软件、硬件等各种设置不当所暴露出的问题。
性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。今天我们专门来介绍ab。
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。 官方参数文档
一、ab的原理
ab是apachebench命令的缩写。
ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。
ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。
二、ab的安装
ab的安装非常简单,如果是源码安装apache的话,那就更简单了。apache安装完毕后ab命令存放在apache安装目录的bin目录下。如下:
/usr/local /apache2/bin
如果apache 是通过yum的RPM包方式安装的话,ab命令默认存放在/usr/bin目录下。如下:
which ab
注意:如果不想安装apache但是又想使用ab命令的话,我们可以直接安装apache的工具包httpd-tools。如下:
yum -y install httpd-tools
查看ab是否安装成功,可以切换到上述目录下,使用ab –V命令进行检测。如下:
ab -V
如果ab安装成功,通过ab –V命令则会显示ab的相迎版本,如上图示。
注意以上是在linux平台下进行安装的,如果是windows平台下,我们也可以下载对应的apache版本进行安装。
目前apache最新版2.4.10,apache官网已经没有windows下载的版本。
三、ab参数说明
有关ab命令的使用,我们可以通过帮助命令进行查看。如下:
- -
下面我们对这些参数,进行相关说明。如下:
-n 在测试会话中所执行的请求个数。默认时,仅执行一个请求。
-c 一次产生的请求个数。默认是一次一个。
-t 测试所进行的最大秒数。其内部隐含值是-n 50000 ,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-p 包含了需要POST 的数据的文件。
-P 对一个中转代理提供BASIC 认证信任。用户名和密码由一个: 隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401 认证需求代码),此字符串都会被发送。
-T POST 数据所使用的Content -type头信息。
-v 设置显示信息的详细程度-4 或更大值会显示头信息,3 或更大值可以显示响应代码(404 ,200 等),2 或更大值可以显示警告和其他信息。
-V 显示版本号并退出。
-w 以HTML 表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-i 执行HEAD 请求,而不是GET 。
-x 设置属性的字符串。
-X 对请求使用代理服务器。
-y 设置属性的字符串。
-z 设置 属性的字符串。
-C 对请求附加一个Cookie : 行。其典型形式是name=value的一个参数对,此参数可以重复。
-H 对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如,"Accept-Encoding:zip/zop;8bit" )。
-A 对服务器提供BASIC 认证信任。用户名和密码由一个: 隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了401 认证需求代码),此字符串都会被发送。
-h 显示使用方法。
-d 不显示"percentage served within XX [ms] table" 的消息(为以前的版本提供支持)。
-e 产生一个以逗号分隔的(CSV )文件,其中包含了处理每个相应百分比的请求所需要(从1 %到100 %)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比'gnuplot' 格式更有用。
-g 把所有测试结果写入一个'gnuplot' 或者TSV (以Tab 分隔的)文件。此文件可以方便地导入到Gnuplot ,IDL ,Mathematica ,Igor 甚至Excel 中。其中的第一行为标题。
-i 执行HEAD 请求,而不是GET 。
-k 启用HTTP KeepAlive 功能,即在一个HTTP 会话中执行多个请求。默认时,不启用KeepAlive 功能。
-q 如果处理的请求数大于150 ,ab每处理大约10 %或者100 个请求时,会在stderr输出一个进度计数。此-q标记可以抑制这些信息。
四、ab性能指标
在进行性能测试过程中有几个指标比较重要:
1、吞吐率(Requests per second)
服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
记住:吞吐率是基于并发用户数的。这句话代表了两个含义:
a、吞吐率和并发用户数相关
b、不同的并发用户数下,吞吐率一般是不同的
计算公式:总请求数/处理完成这些请求数所花费的时间,即
Request per second=Complete requests/Time taken for tests
必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。
2、并发连接数(The number of concurrent connections)
并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
3、并发用户数(Concurrency Level)
要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。
4、用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即:
Time per request=Time taken for tests/(Complete requests/Concurrency Level)
5、服务器平均请求等待时间(Time per request:across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间/总请求数,即:
Time taken for/testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也等于用户平均请求等待时间/并发用户数,即
Time per request/Concurrency Level
五、ab实际使用
[root@centos7 ~]#ab -c 10 -n 100 http://a.ilanni.com/index.php
-c 10 表示并发用户数为10
-n 100 表示请求总数为100
http://a.ilanni .com /index.php 表示请求的目标URL
这行表示同时处理100 个请求并运行10 次index.php 文件。
[root@centos7 ~]#ab -c 10 -n 100 http://a.ilanni.com/index.php
Benchmarking 47.93 .96 .25 (be patient).....done
Server Software: Apache/2.4 .29 ##apache版本
Server Hostname: ip地址 ##请求的机子
Server Port: 80 ##请求端口
Document Path: index.php
Document Length: 18483 bytes ##页面长度
Concurrency Level: 10 ##并发数
Time taken for tests: 25.343 seconds ##共使用了多少时间
Complete requests: 100 ##请求数
Failed requests: 11 ##失败请求
(Connect: 0 , Receive: 0 , Length: 11 , Exceptions: 0 )
Total transferred: 1873511 bytes ##总共传输字节数,包含http的头信息等
HTML transferred: 1848311 bytes ##html字节数,实际的页面传递字节数
Requests per second: 3.95 [#/sec] (mean) ##每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量
Time per request: 2534.265 [ms] (mean) ##用户平均请求等待时间
Time per request: 253.426 [ms] (mean, across all concurrent requests) ##服务器平均处理时间,
Transfer rate: 72.19 [Kbytes/sec ] received ##每秒获取的数据长度
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 8 3.9 10 13
Processing: 1222 2453 322.6 2520 3436
Waiting: 1175 2385 320.4 2452 3372
Total: 1222 2461 322.5 2528 3444
Percentage of the requests served within a certain time (ms)
50 % 2528 ## 50%的请求在25ms内返回
66 % 2534 ## 60%的请求在26ms内返回
75 % 2538
80 % 2539
90 % 2545
95 % 2556
98 % 3395
99 % 3444
100 % 3444 (longest request)
apache的ab工具也算是一种ddos攻击工具 nginx吞吐率就是要比apache高。 根据前面我们提到的性能指标Requests per second吞吐率越高,服务器性能越好。
你可能感兴趣的:(linux命令)
Linux命令行基础——软件包管理
HHwxtx
linux 运维 服务器
1.软件包管理的发展初始阶段最早的软件包管理可以追溯到Unix系统的早期版本。在那时,软件通常以源代码的形式分发,并由系统管理员手动编译和安装。这种方式的管理比较原始和繁琐,因为每次安装都需要手动解决依赖关系和编译问题。软件包的引入为了简化安装过程,软件包被引入Linux,它将软件及其所有文件和资源打包在一起的集合,通常包括可执行文件、库文件、配置文件、文档和元数据(如软件名称、版本号、依赖关系等
15:00面试,15:06就出来了,问的问题有点变态。。
2401_86640859
面试 职场和发展
应该考虑进行如何测试的测试方法怎样估计测试工作量?测试设计的问题当测试过程发生错误时,有哪几种解决办法?测试执行的问题测试评估的目标如何提高测试?C/S模式的优点和缺点B/S模式的优点和缺点…Linuxgrep和find的区别?grep都有哪些用法?查看IP地址?创建和删除一个多级目录?在当前用户家目录中查找haha.txt文件?如何查询出tomcat的进程并杀掉这个进程,写出linux命令?动态
CTF——web方向学习攻略
一则孤庸
CTF 网络安全 CTF
1计算机基础操作系统:熟悉Linux命令,方便使用Kali。网络技术:HCNA、CCNA。编程能力:拔高项,有更好。2web应用HTTP协议:必须掌握web开发框架web安全测试3数据库数据库基本操作SQL语句数据库优化4刷题
Linux命令行中几个使用history相关的技巧
老率的IT私房菜
当你频繁使用Linux命令行时,有效地使用历史记录可以大大提高生产力。1.使用HISTTIMEFORMAT显示时间戳当在命令行输入history时,它将显示序号和命令。出于审计目的,将时间戳与命令一起显示可能会有所帮助。[root@localhost~]#exportHISTTIMEFORMAT='%F%T'[root@localhost~]#history|less2.使用Ctrl+r搜索历史记
Linux搭建Java环境之jdk1.8安装图文教程
yundashi168
Java教程 阿里云教程
Linux的使用相信大家都要用到java吧!在使用java前我们得先安装jdk以及配置环境变量等工作;下面小编给大家分享关于Linux安装jdk的详细步骤:【Linux服务器远程连接工具】xshell6快捷下载,xftp6快捷下载温馨提示:xshell负责编写和执行Linux命令,就是大家都知道的命令行。xftp负责上传和下载文件。两款软件搭配使用。还有一款免费的国产的linux远程连接客户端—f
2022-02-22 特别的日子,温习Linux命令
丁丁妈妈_7594
1.命令cd1)进入上级目录cd..2)进入当前用户主目录cd~3)进入上两级命令cd../..4)进入目录/usr/istestercd/usr/istester2.命令mv1)移动一个文件夹(istester文件夹,移动到/app/www目录)mv~/istester//app/www2)移动一个文件(istester.ini移动到/app/www目录)mvistester.ini/app/w
【安卓面试】
木啊木啊木
android 面试 职场和发展
百度-APP相关安卓开发数组排序view流程和surfaceViewrecycleViewview绘制流程停止一个线程停止线程的场景输入一个url观察者模式观察者模式的基本流程:安卓内存共享JNISQLkotlin与java混用的问题Linux命令及原理app启动流程小程序原理加密算法对称加密非对称加密安卓持久化存储方式启动模式和场景ANR以及如何避免数组排序八大排序-及复杂度viewView是用
chmod命令学习2
天南地北飞
linux基础学习 学习 linux 服务器
递归地修改权限chmod-R很多Linux命令可以递归地应用于文件和目录,chmod命令也不例外。使用-R(或–recursive)选项能够在短时间内修改数百个文件系统对象的权限。$pwd/home/scott/pictures/libby$ls-lFdrwxrw----2scottscott...by_pool/-rw-r--r--1scottscott...libby_arrowrock.jp
man命令学习记录
天南地北飞
linux基础学习 学习 linux 运维
使用man来查看命令的用法manls想了解Linux命令的用法假设你想查ls命令的更多信息,输入manls,就会打开manpage(man是manual的缩写,因此manpage就是“手册页面”),显示关于ls命令各个方面的信息。通常,manpage是由编写程序的开发人员编写的。使用这个命令并不难,只需要输入man,后面再跟上你想要了解的命令。$manlsLS(1)UserCommandsLS(1
linux多个sh 同时执行命令,sh, 批量执行Linux命令
一颗橙子君
linux多个sh 同时执行命令
step1:创建一个sh批处理命令文件#vim/etc/batch_ssh/install_redis.shstep2:给当前用户,能够执行sh脚本权限#chmodinstall_redis.sh777step3:编写要批量执行的命令,read表示等待前端用户输入,sleep表示等待时间单位为秒。echo'\nbegintoinstall01plugin\n';yuminstallcpp-y;ec
600 条最强 Linux 命令总结
素年槿夏
linux 运维 服务器
600条最强Linux命令总结1.基本命令2.关机3.文件和目录4.文件搜索5.挂载一个文件系统6.磁盘空间7.用户和群组8.文件的权限,使用“+”设置权限,使用“-”用于取消9.文件的特殊属性,使用“+”设置权限,使用“-”用于取消10.打包和压缩文件11.RPM包12.YUM软件包升级器13.deb包14.查看文件内容15.文本处理16.字符设置和文件格式转换17.文件系统分析18.初始化一个
python数学库 目录库相关
yanghy228
数学相关的库math:数学相关的库random:随机库软件测试、密码学当中经常使用有限定条件的随机数randint(1,5)randchoice(["aa",'bb','cc'])文件和目录访问相关的库linux命令行:ls查看文件名ls-lpwd查看当前所在位置cd绝对路径(/)相对路径(..)(./一般省略)建立文件夹:mkdir(-p多层建立)删除文件夹:rmdir包括文件的话(rm-rf)
c 实现linux命令wc,C写的实现wc和ls函数
多特姚
c 实现linux命令wc
#include//用lstat函数获取文件的类型intget_mode(char*file){structstatbuf;char*ptr;if(lstat(file,&buf)pw_name);strcpy(name2,getpwuid(buf.st_gid)->pw_name);printf("%s%s",name1,name2);return0;}//浏览文件夹的内容structdiren
Linux 末尾如何增加一行文字
Java搬砖组长
linux 运维 服务器 1024程序员节
在使用Linux命令行界面时,用户经常需要修改或添加文本文件的内容。在这些情况下,如果需要在文本文件的末尾添加一行文字,该如何操作呢?下面将介绍几种在Linux中操作添加一行文字的方法。另外还可以参考:Linux末尾增加一行文字一、使用echo命令echo命令在Linux中非常常用,它可以用来输出文本或变量,也可以用来将文本或变量写入文件。要在文本文件的末尾添加一行文字,可以使用以下命令:echo
linux命令之服务器之间文件传输
abments
linux常用命令 python pandas 数据分析
目录前言一、scp命令1.简单用法:2.使用示例:2.1.复制文件到本地2.2.复制文件夹到本地二、sftp命令1.简单用法:2.使用示例2.1下载文件2.2上传文件总结前言在使用linux服务器时,有可能会需要在服务器之间传入文件,在这里记录了两种命令来进行实现。分别是scp命令和stpf命令。下面将详细介绍这两个命令的使用。一、scp命令scp:远程文件拷贝程序,是securecopyprog
postgresql linux 命令,postgresql基本命令使用
空木道长
postgresql linux 命令
基本命令使用psql命令行pg的命令行操作与mysql的有很大的差异,进入pg命令行后可以使用?查看pg的操作命令查看pg的操作命令#首先在linux命令行登录pg,postgres是pg的默认用户psql-hlocalhost-p5432-Upostgres#查看有哪些用户\dg#查看有哪些数据库\l#查看有哪些表\d#切换数据库\cdnname#例如切换为数据库test,则使用命令\ctest
linux交互式命令行,Linux命令行下交互式HTTP客户端--HTTP Prompt
湖州太守
linux交互式命令行
HTTPPrompt是一个交互式的命令行HTTP客户端,支持自动完成、语法高亮,基于HTTPie和prompt_toolkit构建。HTTPPrompt相对于其它命令行的HTTP客户端(如HTTPie、Curl等)使用上更加直观方便。如对HTTPie有兴趣,可参考之前写的[如何用httpie更高效的调试接口]一文。先展示一下HTTPPrompt官方给出的效果图。有没有觉得很酷!HTTPPrompt
【Linux命令手册】速查、备忘录
Uncle 城
linux 服务器 运维 计算机网络 网络 centos 网络协议
系统信息和性能查看常⽤命令作⽤uname-a查看内核/OS/CPU信息uname-r查看内核版本uname-m查看处理器架构arch查看处理器架构hostname查看计算机名who显示当前登录系统的⽤户whoami显示登录时的⽤户名whoami显示当前⽤户名cat/proc/version查看linux版本信息cat/proc/cpuinfo查看CPU信息cat/proc/interrupts查看
【Linux命令】进程、端口查询命令
iku!!
Linux linux 服务器 运维
1、根据进程ID查询占用的端口号netstat-nlp|grep[进程ID]2、根据端口号查询占用它的进程IDlsof-i:[端口号]或者netstat-nlp|grep[端口号]
linux脚本中怎么退出tee模式,Linux Shell脚本入门:tee命令
EHOME电子竞技俱乐部
用途说明在执行Linux命令时,我们可以把输出重定向到文件中,比如ls>a.txt,这时我们就不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了。tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中(readfromstandardinputandwritetostandardoutputandfiles.Copystandardinp
使用VMware Workstation配置Linux虚拟机的固定IP地址、快照和克隆
简243
Linux linux tcp/ip 网络 服务器 运维
使用VMwareWorkstation配置Linux虚拟机的固定IP地址、快照和克隆文章目录使用VMwareWorkstation配置Linux虚拟机的固定IP地址、快照和克隆操作说明Linux命令1、Linux虚拟机固定IP地址原因步骤1、在VMwareWorkstation中配置IP地址网关和网段2、在Linux系统中手动修改网络配置文件固定IP地址2、Linux虚拟机快照介绍使用1、拍摄快照
Makefile
嘻嘻嘻Mr.Huang
linux 运维 服务器
文件编写好以后在Linux命令行中执行一条make命令即可自动编译整个工程。1、Makefile的参数1.目标:即要生成的文件。2.依赖:即目标文件由哪些文件生成。3.命令:即通过执行命令由依赖文件生成目标文件。4.all:Makefile文件默认只生成第一个目标文件即完成编译,但是可以通过all指定所需要生成的目标文件。Makefile中,目标(Target)和依赖(Dependency)是通过
Linux 命令行快捷键
sun007700
linux 运维 服务器
Linux命令行快捷键_linux删除一个单词-CSDN博客涉及在linux命令行下进行快速移动光标、命令编辑、编辑后执行历史命令、Bang(!)命令、控制命令等。让basher更有效率。常用Ctrl+左右键:在单词之间跳转Ctrl+a:跳到本行的行首Ctrl+e:跳到页尾Ctrl+u:删除当前光标前面的文字(还有剪切功能)Ctrl+k:删除当前光标后面的文字(还有剪切功能)Ctrl+y:粘贴Ct
在网络安全中常见的windows和linux命令
阿贾克斯的黎明
网络安全 笔记 网络安全
Linux命令:网络扫描与监测:nmap:强大的网络扫描工具,可用于发现主机、扫描端口、确定操作系统类型等。例如,nmap-sS192.168.1.0/24进行SYN扫描一个IP网段;nmap-p80,443example.com扫描特定主机的80和443端口1。netstat:显示网络连接状态、路由表、接口统计等信息。如netstat-tuln查看正在监听的TCP和UDP端口。tcpdump:用
Linux命令find:搜索指定文件
洪恒远
Linux linux
一命令作用搜索指定的文件,可按文件名查找,也可按文件大小查找。按文件名查找方式,支持使用通配符*。二命令格式2.1按文件名搜索find起始路径-name"文件名"例:find/-name"test"2.2按文件大小搜索find起始路径-size±n[k/M/G]﹢:表示大于;-:表示小于;n:表示数字大小;k(小写):表是KB;M:表示MB;G:表示GB;例:find/-size+10K
OpenWrt系统常见的编译错误,你一定遇到过
zhouwu_linux
智能路由器
OpenWrt是一个开源的嵌入式操作系统,随着支持刷机的路由器越来越多,我们经常会自己编译对应固件,用于加入自己想要的功能,在编译过程中或多或少会遇到一些编译错误,如果你是新手,遇到这些问题可能有些不知所措。为了让更多人学会编译OpenWrt固件,这里将常见的编译错误进行一个总结,并给出解决方案。OpenWrt系统的编译总的来说是非常容易的,只要基本的Linux命令操作即可,所以并不需要开发基础。
Linux用户和组管理复习:chage、gpasswd、id、whoami 和 groups 命令
pyliumy
linux openEuler linux 运维 服务器
目录引言chage:管理密码过期策略基本语法:示例用法:gpasswd:组管理工具基本语法:示例用法:id:打印用户和组ID基本语法:示例用法:whoami:显示当前用户ID基本语法:示例用法:groups:列出用户所属组基本语法:示例用法:结论致谢引言Linux系统管理的核心任务之一是用户和组的权限管理。掌握相关命令对于维护系统安全性和组织性至关重要。本文将复习五个基本的Linux命令:chag
【Linux篇】软件安装与systemctl控制软件
Vez'nan的幸福生活
macos Linux linux
1.软件安装1.1Linux系统的应用商店操作系统安装软件有许多方式,一般分为:下载安装包自行安装:如win系统使用exe文件.msi文件等。如mac系统使用dmg文件.pkg文件等。系统应用商店内安装:如win系统又Microsoft商店。如mac系统又AppStore商店。Linux系统同样支持这两种方式,我们首先,先使用Linux命令行内的"应用商店",yum命令安装软件。1.2yum命令y
Linux命令基础(三(用户和组))
確定饿的猫
linux 运维 服务器
目录用户用户的分类管理员用户普通用户程序用户UIDpasswdchageuseraddusermoduserdel组gpasswd其他用户用户的分类Linux中用户分为三类,分别为管理员用户即root用户,我们在安装Linux虚拟机的过程中,有一个步骤就是设置root账户。设置了root账户后普通账户就无所谓怎么设置了,因为root对本机的控制权极高,ID=0。直接使用root账户登录系统,就可以
Linux常用命令(初学简单介绍)
小橞
linux 运维
linuxlinux命令cd:移动命令在文件之间移动例如cd/文件名或者cd…/(该命令为退回上一级文件)ls:该命令为查看文件夹命令可以查看文件夹内的文件-l:以长格式显示-A:显示所有内容包括隐藏文件-d:显示目录本身的属性-h:提供一个易读的容量单位-R:递归显示目录下所有内容cat:查看命令用于查看文件内容例如:cat/a.txt-n:显示行号mkdir:该命令用于创建文件夹touch:该
算法 单链的创建与删除
换个号韩国红果果
c 算法
先创建结构体
struct student {
int data;
//int tag;//标记这是第几个
struct student *next;
};
// addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
if(h==NULL) //??????
《大型网站系统与Java中间件实践》第2章读后感
白糖_
java中间件
断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。
看完整章内容,
zeus持久层spring事务单元测试
deng520159
java DAO spring jdbc
今天把zeus事务单元测试放出来,让大家指出他的毛病,
1.ZeusTransactionTest.java 单元测试
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import
Rss 订阅 开发
周凡杨
html xml 订阅 rss 规范
RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。
RSS
分页查询实现
g21121
分页查询
在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。
按实现形式分前台分页和服务器分页:
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据
spring jms异步消息处理
510888780
jms
spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下:
highCharts柱状图
布衣凌宇
hightCharts 柱图
第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller
@Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController { private UserServi
我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
spring mvc Spring 教程 spring3 教程 Spring 入门
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
TLS java简单实现
antlove
java ssl keystore tls secure
1. SSLServer.java
package ssl;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import
Zip解压压缩文件
百合不是茶
Zip格式解压 Zip流的使用 文件解压
ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件;
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
&n
underscore.js 学习(一)
bijian1013
JavaScript underscore
工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。 学
java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)
bijian1013
java jvm jstatd
1.介绍
jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。
jstatd是基于RMI的,所以在运行jstatd的服务
【Spring框架三】Spring常用注解之Transactional
bit1129
transactional
Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义:
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version
我(程序员)的前进方向
bitray
程序员
作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....
nginx lua开发经验总结
ronin47
使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下 1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa
java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
bylijinnan
java
import java.util.Stack;
public class ReverseStackRecursive {
/**
* Q 66.颠倒栈。
* 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
* 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
*1. Pop the top element
*2. Revers
正确理解Linux内存占用过高的问题
cfyme
linux
Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上:
Mem: 3889836k total, 3341868k used, 547968k free, 286044k buffers
Swap: 6127608k total,&nb
[JWFD开源工作流]当前流程引擎设计的一个急需解决的问题
comsci
工作流
当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。
而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。
自定义类的equals函数
dai_lm
equals
仅作笔记使用
public class VectorQueue {
private final Vector<VectorItem> queue;
private class VectorItem {
private final Object item;
private final int quantity;
public VectorI
Linux下安装R语言
datageek
R语言 linux
命令如下:sudo gedit /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke
如何修改mysql 并发数(连接数)最大值
dcj3sjt126com
mysql
MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass
单一功能原则
dcj3sjt126com
面向对象的程序设计 软件设计 编程原则
单一功能原则[
编辑]
SOLID 原则
单一功能原则
开闭原则
Liskov代换原则
接口隔离原则
依赖反转原则
查
论
编
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有
POJO、VO和JavaBean区别和联系
fanmingxing
VO POJO javabean
POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被
SpringSecurity3.X--LDAP:AD配置
hanqunfeng
SpringSecurity
前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。
将配置文件中的如下部分删除:
<!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密-->
mac mysql 修改密码
IXHONG
mysql
$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-
设计模式--抽象工厂模式
kerryg
设计模式
抽象工厂模式:
工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,
评"高中女生军训期跳楼”
nannan408
首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。
孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军
scala如何读取和写入文件内容?
qindongliang1922
java jvm scala
直接看如下代码:
package file
import java.io.RandomAccessFile
import java.nio.charset.Charset
import scala.io.Source
import scala.reflect.io.{File, Path}
/**
* Created by qindongliang on 2015/
C语言算法之百元买百鸡
qiufeihu
c 算法
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?
代码如下:
#include <stdio.h>
int main()
{
int cock,hen,chick; /*定义变量为基本整型*/
for(coc
Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode
wyz2009107220
NameNode
正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。
1. Secondary NameNode
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image
优点:Hadoop较早的版本都自带,