摘要: 1.正常情况下返回的json数据格式如下: 默认都是一行输出,或者在HTML进过一些插件格式化之后才会显示比较美观的格式。那么在Java后台如何进行json格式化输出呢下面直接贴代码。2.可以封装一个工具类专门转换json格式化: 3.同样的数据输出之后就达到预期效果: 如有披露或问题欢迎留言或者入 阅读全文
posted @ 2019-05-14 10:19 xiaoshen666 阅读(4164) 评论(0) 推荐(0) 编辑
摘要: 很多平台一旦做大了,平台的流量就会陡增,同时并发访问的流量也会暴增,原本规划的硬件配置就无法满足当下的流量问题。 那么如何处理好高并发的流量问题呢? 小编将这些分为2个方面:架构层面和网站本地项目层面。 一、架构层面 1、硬件升级 假设一台服务器最多能支持每天10万独立IP,如果访问量增大的话,那么 阅读全文
posted @ 2019-05-14 09:12 xiaoshen666 阅读(1629) 评论(0) 推荐(0) 编辑
摘要: 解析response中的内容,并把获取到的value传递到后续的request中,常用的方法就是在想要解析response的request上添加后置处理器 本章介绍两种常用的组件 BeanShell PostProcessor JSON Extractor 获取response中的字符串,并对内容进 阅读全文
posted @ 2019-05-14 09:09 xiaoshen666 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 测试场景: 模拟并发100个user,在TesterHome 站内搜索VV00CC 添加线程组 添加HTTP信息头管理器 添加HTTP Sampler 填写HTTP Sampler中的信息 添加监听器 线程组参数中填写模拟并发的数量 运行脚本 查看运行结果 原文 Jmeter Web 性能测试入门 阅读全文
posted @ 2019-05-14 09:08 xiaoshen666 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 添加配置元件:用户定义的变量 使用函数助手 添加配置元件:CSV Data Set Config 添加前置处理器:BeanShell PreProcessor 在request中使用: 在需要参数化的地方用${userId}代替原来的参数值 示例: 生成5位字符长的字符串,从1234567890qa 阅读全文
posted @ 2019-05-14 09:08 xiaoshen666 阅读(312) 评论(0) 推荐(0) 编辑
摘要: jmeter自带了拦截request的功能,并且也有对应的tool:badboy 可以用。但由于我经常做移动端的项目,个人还是习惯用fiddler来收集request。 官网下载并安装Fiddler 抓取PC上的http/https请求 1.开启https抓包选项 2.浏览器访问http://127 阅读全文
posted @ 2019-05-14 09:05 xiaoshen666 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 线程组:用来设置并发的数量和模式。是用来模拟用户并发的组件。JMeter 的每个任务都是用线程来处理的。 线程数:要并发的请求数量。 Ramp-Up Period: 在多次时间内把这些并发的请求发送完,单位秒 循环次数:这些并发一共要循环测试多少次 调度器: 启动时间:测试计划什么时候启动,启动延迟 阅读全文
posted @ 2019-05-14 09:05 xiaoshen666 阅读(272) 评论(0) 推荐(0) 编辑
摘要: Path: 添加%JAVA_HOME%\bin; %JMETER_HOME%\bin; 打开cmd, 输入java 回车,jmeter 回车,分别显示如下,表示环境配置成功。 原文 https://testerhome.com/topics/10944 阅读全文
posted @ 2019-05-14 09:04 xiaoshen666 阅读(606) 评论(0) 推荐(0) 编辑
摘要: MySQL参数优化这东西不好好研究还是比较难懂的,其实不光是MySQL,大部分程序的参数优化,是很复杂的。MySQL的参数优化也不例外,对于不同的需求,还有硬件的配置,优化不可能又最优选择,只能慢慢的进行优化,需要不断的调试,才能达到不同环境的最优选择。 首先介绍一下MySQL配置文件中不同模块 原 阅读全文
posted @ 2019-05-14 09:00 xiaoshen666 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 1. 什么Docker? Docker是一个能把开发的应用程序自动部署到容器的引擎,它使用go语言编写的开源引擎,它在github上面个的地址为:https://github.com/docker/docker. 在2013年初由dotCloud开发的基于Apache 2.0 开源授权协发行的引擎。 阅读全文
posted @ 2019-05-13 16:20 xiaoshen666 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 在性能测试过程中,我们常常遇到这样的问题,使用Jmeter的GUI界面进行大并发量的性能测试时,界面容易卡死,无法继续进行性能测试。通过使用命令行方式启动jmeter是一个不错的方式。下面就简单介绍一下使用命令行方式启动jmeter进行性能测试。 注:进行下面操作时,需要确保以下环境的搭建是ok的: 阅读全文
posted @ 2019-05-13 14:18 xiaoshen666 阅读(8309) 评论(1) 推荐(2) 编辑
摘要: 1. 什么时候使用ActiveMQ 1. 异步通信 2. 一对多通信 3. 做个系统的集成,同构,异构 4. 作为RPC的替代 5. 多个应用相互解耦 6. 作为事件驱动架构的幕后支撑 7. 为了提高性能的可伸缩性 2. ActiveMQ的优化 2.1 ActiveMQ的性能依赖的因素 1.网络拓扑 阅读全文
posted @ 2019-05-13 08:35 xiaoshen666 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 1. 监控和管理Broker Web Console 方式:直接访问ActiveMQ的管理页面:http://localhost:8161/admin,默认的用户名和密码是admin/admin。具体配置在conf/jetty.xml里面,这就是我们前面例子中一直使用的方式。 Hawtio-web 阅读全文
posted @ 2019-05-13 08:31 xiaoshen666 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 1. Message Selectors JMS Selectors 用在获取消息的时候,可以基于消息属性和Xpath语法对消息进行过滤。JMS Selectors有SQL92语义定义。以下是个Selectors的例子: consumer = session.createConsumer(desti 阅读全文
posted @ 2019-05-13 08:19 xiaoshen666 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 1. Exclusive Consumer 独有消费者:Queue中的消息是按照顺序被分发到consumer的,然而,当你有多个consumers同时从相同的queue中提取消息时,你将失去这个保证。因为这些消息是被多个线程并发的处理。有的时候,保证消息按照顺序处理是很重要的。例如:你可能不希望在插 阅读全文
posted @ 2019-05-13 08:18 xiaoshen666 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 1. Blob Message 有些时候,我们需要传递Blob(Binary Large Objects)消息,在5.14之前,(5.12和5.13需要在jetty.xml中手动开启)可以按照如下的方式配置使用fileserver: 配置BLOB Tansfer Policy,可以在发送方的连接UR 阅读全文
posted @ 2019-05-13 08:17 xiaoshen666 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 1. Messaage Properties ActiveMQ支持很多消息属性,具体可以参考 http://activemq.apache.org/activemq-message-properties.html 常见得一些属性说明: 1. queue得消息默认是持久化得 2. 消息得优先级默认是4 阅读全文
posted @ 2019-05-13 08:16 xiaoshen666 阅读(1981) 评论(0) 推荐(0) 编辑
摘要: 1. Optimized Acknowledgetment ActiveMQ缺省支持批量确认消息,由于批量确认会提高性能,如果希望在应用程序中禁止经过优化的确认方式,可以采用以下几种方式: 1. 在Connection的URI上启用Optimized Acknowledgements ActiveM 阅读全文
posted @ 2019-05-13 08:15 xiaoshen666 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 1. Message Cursors 1.1 概述 ActiveMQ发送持久化消息的典型的厝里方式是:当消息的消费者准备就绪时,消息发送系统把存储的消息按批次发送给消费者,在发送完一个批次的消息后,指针的标记位置指向下一个批次的待发消息的位置,进行后续的发送操作。这是一种 比较健壮和灵活的消息发送方 阅读全文
posted @ 2019-05-13 08:14 xiaoshen666 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 1. Visual Destinations 1.1 概述 虚拟Destination用来创建逻辑Destinations,客户端可以通过它来产生和消费消息,它会把消息映射到物理Destinations。ActiveMQ支持两种方式: 1. 虚拟主题(Virtual Topics) 2. 组合Des 阅读全文
posted @ 2019-05-13 08:13 xiaoshen666 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 1. Wildcards 1. Wildcards用来支持名字分层体系,它不是JMS规范的一部分,是ActiveMQ的扩展。 ActiveMQ支持一下三种wildcards: 1. ".": 用于作为匹配路径上名字间的分隔符 2. “*": 用于匹配路径上的任何名字(不递归) 3. ”>“: 用于递 阅读全文
posted @ 2019-05-13 08:12 xiaoshen666 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 1. Queue consumer cluster ActiveMQ支持Consumer对消息的高可靠性的负载均衡消费,如果一个Consumer死掉,该消息会转发到其他的Consumer消费的Queue。如果一个Consumer获得消息比其他Consumer快,那么他将获得更多的消息。因此推荐Act 阅读全文
posted @ 2019-05-13 08:11 xiaoshen666 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 1. 多播协议multicast ActiveMQ使用Multicast协议将一个Service和其他的Broker是我Service里连接起来。IP Multicast是一个被用于网络中传输数据到其他一组接收者的技术。 Ip muiticast传统的概念称为组地址,组地址是ip地址在ActiveM 阅读全文
posted @ 2019-05-13 08:09 xiaoshen666 阅读(687) 评论(0) 推荐(0) 编辑
摘要: 1. Failover Protocol 前面讲述的都是Client配置连接到指定的broker上,但是,如果Broker的连接失败怎么办呢?此时,Client有两个选项:要么立刻死掉,要么连接到其他的Broker上。 2. Failover Protocol的配置方式 默认的情况下,这种协议用于随 阅读全文
posted @ 2019-05-13 08:08 xiaoshen666 阅读(885) 评论(0) 推荐(0) 编辑
摘要: 1. 启动多个Broker 在win10下同一台服务器启动多个Broker, 步骤如下: 1. 复制安装目录下的conf文件夹命名为conf2 2. 修改activemq.xml中的brokerName不能跟之前的一样。如: 3.修改数据存放的名称,如下: 4. 修改所有的transportConn 阅读全文
posted @ 2019-05-13 08:07 xiaoshen666 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 ActiveMQ不仅支持persistent和non-persistent两种方式,还支持消息的恢复(recovery)方式。 2. PTP Queue的存储是很简单的,其实就是FIFO的Queue 2. PUB/SUB 对于持久化订阅主题,每一个消费者都将获得一个消息的复制。 3. 有 阅读全文
posted @ 2019-05-13 08:05 xiaoshen666 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 1. 连接到ActiveMQ Connector: Active提供的,用来实现连接通讯的功能,包括:client-to-broker,broker-to-broker.ActiveMQ允许客户端使用多种协议来连接。 1.1 配置Transport Connecto 在conf/activemq.x 阅读全文
posted @ 2019-05-13 08:04 xiaoshen666 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 1. 添加依赖 spring 提供了对JMS的支持,需要添加Spring支持jms的包和Spring的核心包,如下: <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> < 阅读全文
posted @ 2019-05-13 08:03 xiaoshen666 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 1. JMS的API结构 其实上图中的五个API在第一节中我们都已经使用到了。本节将会讲非持久化和持久化topic的使用。 2. JMS的基本开发步骤 1. 创建一个JMS工厂, ConnectionFactory 2. 通过Connection Factory来创建JMS的Connection 3 阅读全文
posted @ 2019-05-13 08:01 xiaoshen666 阅读(278) 评论(0) 推荐(0) 编辑
摘要: Broker:相当于一个ActiveMQ服务器实例,在实际的开发中我们可以启动多个Broker. 命令行启动参数示例如下: 1. activemq start 使用默认的activemq.xml来启动。 2. activemq start xbean:file../conf/active-2.xml 阅读全文
posted @ 2019-05-13 08:01 xiaoshen666 阅读(791) 评论(0) 推荐(0) 编辑
摘要: 数据通信 如果需要考虑的是两台机器(甚至多台)怎么使用Netty进行通信。大体上分为三种: 1 第一种:使用长连接通道不断开的形式进行通信。也就是服务端和客户端的通道一直处于开启状态。 如果服务器性能足够好,并且我们的客户端数量也比较少的情况下,推荐这种方式。 2 第二种:一次性批量提交数据,采用短 阅读全文
posted @ 2019-05-12 13:38 xiaoshen666 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 脚本运行的过程中,大量request抛error,但没有地方能够查看request是因为什么error的。 原因:Jmeter默认禁掉了运行过程中每个request的具体response信息收集,只保留了status。解决方法:修改jmeter.properties文件中Results file c 阅读全文
posted @ 2019-05-11 16:09 xiaoshen666 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 今天遇到一个问题,在下面的代码中,当抛出运行时异常后,后面的代码还会执行吗,是否需要在异常后面加上return语句呢? public void add(int index, E element){ if(size >= elements.length) { throw new RuntimeExce 阅读全文
posted @ 2019-05-11 15:31 xiaoshen666 阅读(1436) 评论(0) 推荐(0) 编辑
摘要: 一个每天1000万PV的网站需要什么样的性能去支撑呢?继续上一篇,下面我们就来计算一下,前面我们已经搞到了一票数据,但是这些数据的意义还没有说。技术是为业务服务的,下面就来说说怎么让些数据变得有意义。 一、聚合报告初识聚合报告是不是有些眼熟,是的你没看错,他跟Apache AB的结果是类似的,事实上 阅读全文
posted @ 2019-05-11 10:02 xiaoshen666 阅读(1058) 评论(1) 推荐(0) 编辑
摘要: 一、JMeter的安装(Linux) 1. 下载JMeter:这个就不细说了,直接去(http://jmeter.apache.org/download_jmeter.cgi)下载。 2. 解压:tar -zxvf apache-jmeter-2.9.tgz 3. 执行:sh jmeter.sh。 阅读全文
posted @ 2019-05-11 10:01 xiaoshen666 阅读(1343) 评论(0) 推荐(0) 编辑
摘要: 对于服务器性能测试这块的经验更是少得可以忽略。迫使不得不让我们去尝试了解测试的知识。首先我们的需求场景如下:服务器硬件:(只有一台)系统:CentOS 7WebServer:Tomcat 7.0Jdk:1.8CPU:8核 2.9GHz两个内存:16G报名应用系统:只需要向外提供一个报名和找回报名号的 阅读全文
posted @ 2019-05-11 09:59 xiaoshen666 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 1. JMS的API结构 其实上图中的五个API在第一节中我们都已经使用到了。本节将会讲非持久化和持久化topic的使用。 2. JMS的基本开发步骤 1. 创建一个JMS工厂, ConnectionFactory 2. 通过Connection Factory来创建JMS的Connection 3 阅读全文
posted @ 2019-05-10 16:37 xiaoshen666 阅读(154) 评论(0) 推荐(0) 编辑
摘要: springboot的打包方式有很多种。有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的。这里主要介绍如何打成jar进行部署。不推荐用war,因为springboot适合前后端分离,打成jar进行部署更合适。首先需要在application.properti 阅读全文
posted @ 2019-05-10 15:19 xiaoshen666 阅读(1346) 评论(0) 推荐(0) 编辑
摘要: 1. 消息接收确认 JMS消息只有在被确认之后,才认为已经被成功的消费了,消息成功消费通常包含三个阶段:客户接收消息,客户处理消息和消息被确认。 在事务性会话中,当一个事务被提交的时候,确认自动发生。在非事务性会话中,消息何时被确认取决于创建会话时的应答模式(acknowledge mode)。该参 阅读全文
posted @ 2019-05-10 14:47 xiaoshen666 阅读(197) 评论(0) 推荐(1) 编辑
摘要: 1. JMS 的基本概念 1. JMS是什么? JMS Java Message Service,Java消息服务,是Java EE中的一种技术。 2. JMS规范 JMS定义了Java中访问消息中间件的接口,并没有给予实现,实现JMS接口的消息中间件称为JMS Provider,例如ActiveQ 阅读全文
posted @ 2019-05-10 14:46 xiaoshen666 阅读(264) 评论(0) 推荐(0) 编辑