服务器类型

JMeter学习-001-JMeter初识

半世苍凉 提交于 2020-03-15 19:07:42
Apache JMeter 是Apache组织开发的基于Java的开源压力测试工具(个人发现也可用于接口测试)。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter可进行参数化测试,实现自动化脚本与测试数据分离,能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。 Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器,网络 或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。 Apache jmeter一款非常优秀的开源的性能测试工具,并且可进行自定义扩展(使用 Java自定义请求或自定义验证函数等,以对JMeter进行客制化扩展)。 JMeter的作用: 1

(1)基于tcp协议的编程模型 (2)tcp协议和udp协议的比较 (3)基于udp协议的编程模型 (4)反射机制

耗尽温柔 提交于 2020-03-15 16:09:15
1.基于tcp协议的编程模型(重中之重) 1.1 编程模型 服务器: (1)创建ServerSocket类型的对象,并提供端口号; (2)等待客户端的连接请求,调用accept()方法; (3)使用输入输出流进行通信; (4)关闭Socket并释放有关的资源; 客户端: (1)创建Socket类型的对象,并提供服务器的IP地址和端口号; (2)使用输入输出流进行通信; (3)关闭Socket并释放有关的资源; 1.2 相关类和方法的解析 (1)ServerSocket类 java.net.ServerSocket类主要用于描述服务器的套接字(大插排)。 ServerSocket(int port) - 根据参数指定的端口号来构造对象。 Socket accept() - 侦听并接受到此套接字的连接请求。 void close() - 关闭套接字。 (2)Socket类 java.net.Socket类用于描述客户端的套接字,该套接字是两台机器间通信的端点。 Socket(String host, int port) - 根据参数指定的主机名和端口号来构造对象。 InputStream getInputStream() - 用于获取当前Socket的输入流。 OutputStream getOutputStream() - 用于获取当前Socket的输出流。 void close()

Tomcat服务器原理详解

若如初见. 提交于 2020-03-15 11:36:31
【目录】本文主要讲解Tomcat启动和部署webapp时的原理和过程,以及其使用的配置文件的详解。主要有三大部分: 第一部分、Tomcat的简介和启动过程 第二部分、Tomcat部署webapp 第三部分、Tomcat处理一个http请求的过程 【简介】   Tomcat依赖 <CATALINA_HOME>/conf/server.xml 这个配置文件启动server(一个Tomcat实例,核心就是启动容器Catalina)。    Tomcat 部署Webapp时,依赖 context.xml和web.xml( <CATALINA_HOME>/conf/目录下的context.xml和web.xml在部署任何webapp时都会启动,他们定义一些默认行为,而具体每个webapp的 META-INF/context.xml 和 WEB-INF/web.xml 则定义了每个webapp特定的行为 ) 两个配置文件部署web应用。 第一部分、Tomcat的简介和启动过程 一、Tomcat的下载包解压之后的目录 tomcat根目录在tomcat中叫<CATALINA_HOME> <CATALINA_HOME>/bin: 存放各种平台下启动和关闭Tomcat的脚本文件.其中有个档是catalina.bat,打开这个windos配置文件,在非注释行加入JDK路径,例如 : SET JAVA

ajax----局部刷新

拈花ヽ惹草 提交于 2020-03-14 20:00:31
  最近在编网页的时候想实现在不跳转的情况下刷新当前页面。也就是客户端发送一个查询请求,在客户端不跳转当前页面的情况下,显示服务器返回的结果。 在网上找了下资料,发现ajax能做到这一点。 一、关于ajax ① ajax(asynchronouse javascript and xml) 异步的javascript 和 xml ② 是7种技术的综合,它包含了七个技术( javascript、 xml、xstl 、xhtml、 dom、 xmlhttprequest、 css), ajax 是一个粘合剂, ③ ajax是一个与服务端语言无关的技术. 即可以使用在(php/java ee/.net网站/ asp) ④ ajax可以给客户端返回三种格式数据(文本格式 ,xml , json格式) ⑤ 无刷新数据交换技术有以下: flash, java applet, 框架, iframe, ajax) 二、 ajax在什么地方用的多 1 动态加载数据,按需取得数据。【树形菜单、联动菜单…/省市联动】 2 改善用户体验。【输入内容前提示、带进度条文件上传…】 3 电子商务应用。【购物车、邮件订阅…】 4 访问第三方服务。 【访问搜索服务、rss阅读器】 5. 数据的布局刷新 三、使用ajax与服务器通信的的步骤 ① 创建一个XMLHttpRequest对象 ② 创建url,data,通过

大型网站架构之分布式消息队列

北城余情 提交于 2020-03-14 13:15:45
以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享大纲 消息队列概述 消息队列应用场景 消息中间件示例 JMS消息服务 常用消息队列 参考(推荐)资料 本次分享总结 一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。 二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。 2.1异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种1.串行的方式;2.并行方式。 (1)串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。(架构KKQ:466097527,欢迎加入) (2)并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间。 假设三个业务节点每个使用50毫秒钟,不考虑网络等其他开销,则串行方式的时间是150毫秒

FTP-Linux中ftp服务器搭建

北战南征 提交于 2020-03-14 11:04:12
一、FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp 21/tcp #控制链路:端口21 (2)FTP连接方式 支持两种连接模式:主动模式(Port)和被动模式(Pasv),这两种模式都是针对数据链路进行的,与控制链路无关。 主动模式工作过程: 1.客户端从自己的一个任意端口(N > 1024)和FTP服务器的21端口建立控制链路 2.然后客户端发出Port指令告诉服务器连接自己的N+1端口来建立一条数据通道 3.当FTP服务器接到这一指令时,会使用20端口连接用户在Port指令中指定的端口号N+1来发送数据 被动模式工作过程: 1.客户端从自己的一个任意端口(N > 1024)和FTP服务器的21端口建立控制链路 2.然后客户端发送Pasv指令,告诉服务器自己要连接服务器的某一个端口 3.如果服务器上的这个端口是空闲可用的,那么服务器会返回确认信息,之后数据传输通道被建立;但如果服务器上的这个端口被另一个资源所使用,那么服务器返回不确认的信息,那么这是客户端会再次发送Pasv命令。 注意: 在FTP客户连接服务器的整个过程中,控制信道是一直保持连接的,而数据传输通道是临时建立的; 主动模式建立数据传输通道是由服务器端发起的

HTTP状态码(HTTP Status Code)

我与影子孤独终老i 提交于 2020-03-13 13:33:33
一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 所有状态解释:点击查看 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx (成功) 表示成功处理了请求的状态代码。 代码 说明 200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 201 (已创建) 请求成功并且服务器创建了新的资源。 202 (已接受) 服务器已接受请求,但尚未处理。 203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 204 (无内容) 服务器成功处理了请求,但没有返回任何内容。 205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。 206 (部分内容) 服务器成功处理了部分 GET 请求。 3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。 代码 说明 300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 301 (永久移动)

redis缓存服务器(nginx+tomcat+redis+mysql实现session会话共享)

谁说我不能喝 提交于 2020-03-13 05:14:43
一,redis介绍 redis是一个key-value存储系统。和memcached类似,它支持存储的value类型相对更多,包括string(字符串),list(列表),set(集合),zset(sorted set---有序集合)和hash(哈希类型)。与memcached一样,为了保证效率,数据都是缓存在内存中。区别是redis会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现master-slave(主从)同步。 Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcacehd这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了java,C/C++,C#,php,javaScript,Perl,Object-C,python,Ruby等客户端,使用很方便。 如果简单的比较redis与memcached的区别,基本上有以下3点: 1,redis不仅仅支持简单的key/value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 2,redis支持数据的备份,即master-slave模式的数据备份。 3,redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 在Reids中,并不是所有的数据都一直存储在内存中

CGI FastCGI Nginx

守給你的承諾、 提交于 2020-03-12 13:40:28
CGI 什么是CGI CGI全称通用网关接口,是一种让客户端(web浏览器)与web服务器(nginx等)程序进行通信(数据传输)的协议 用来规范web服务器传输到php解释权中的数据类型以及数据格式,包括URL、查询字符串、post数据、http header等,也就是为了保证webserver传递过来的数据是标准格式的 CGI可以用任何一种具有标准输入、输出和环境变量的语言编写,如php、perl、tcl等。不同类型语言写的程序只要符合cgi标准,就能作为一个cgi程序与web服务器交互,早期的cgi大多都是c或c++编写的 一般说的cgi指的是用各种语言编写的能实现该功能的程序 CGI程序的工作原理 每次webserver收到index.php这种类型的动态请求后,会启动对应的CGI程序(php的 解析器) php解析器会解析php.ini配置文件,初始化运行环境,然后处理请求,处理完成后将数据按照cgi规定的格式返回给webserver然后退出进行进程 最后webserver再把结果返回给浏览器 CGI程序的特点 高并发时性能较差 cgi程序的每一次web请求都会有启动和退出过程,也就是最为人诟病的fork-and-execute模式(每次HTTP服务器遇到动态请求时都需要重新启动脚本解析器来解析php.ini,重新载入全部dll扩展并初始化全部数据结构

Ajax学习

心不动则不痛 提交于 2020-03-12 08:10:17
Ajax简介 AJAX 不是新的编程语言,而是一种使用现有标准的 新方法 。 AJAX 最大的优点 是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。 增加B/S的体验性 Ajax 创建XMLHttpRequest 创建:new XMLHttpRequest(); 使用的时候应该判断一下;看浏览器是否支持 XMLHttpRequest; 向服务器发送请求 open()和send()方法 xmlhttp . open ( "GET" , "ajax_info.txt" , true ) ; xmlhttp . send ( ) ; 方法 描述 open(method,url,async) 规定请求的类型、URL以及是否异步处理请求。 · method: 请求的类型,GET或POST · url: 文件在服务器上的位置 · async: true(异步)或false(同步) send(string) 将请求发送到服务器。 · string : 仅用于POST请求。 选择GET和POST? 与POST相比,GET更快也更简单;并且在大部分情况下都能使用; 使用POST请求的情况: *1 无法使用缓存文件;(更新服务器上的文件或数据库) *2 向服务器发送大量数据(POST没有数据量限制) *3 发送包含未知字符的用户输入时,POST比GET更稳定也更可靠;