工作之余,公司想对ActiveMQ进行一番性能测试,
测试环境:
硬盘:1T,5400 (效果不佳)
得出了一个异样的测试结果:
持久:
插入200000条JSON,共消耗:25.175 s
平均:7944.389275074478 条/秒
插入200000条JSON,共消耗:34.47 s
平均:5802.146794313896 条/秒
插入200000条JSON,共消耗:29.937 s数量:1400000
平均:6680.696128536593 条/秒
插入200000条JSON,共消耗:29.094 s
平均:6874.269608854059 条/秒
非持久:
插入200000条JSON,共消耗:11.35 s数量:1800000
平均:17621.14537444934 条/秒
插入200000条JSON,共消耗:10.714 s
平均:18667.16445771887 条/秒
插入200000条JSON,共消耗:11.153 s
平均:17932.394871335066 条/秒
插入200000条JSON,共消耗:10.717 s数量:2400000
平均:18661.93897545955 条/秒
主要在自己本地测试,最终祸首是硬盘不给力啊;
在进行持久化操作时,ActiveMQ默认是kahadb管理
log的默认大小是32MB,当超过之后会新建一个新的log文件,完成操作后,activeMQ又将旧的log删除了。
代码贴上:
public class Sender { static int size = 200000; static Session session; static MessageProducer producer; static Topic topic; static Connection connection; static String str = "[{'flag':'1','value':'8854c92e92404b188e63c4031db0eac9','label':'交换机(虚机)'},{'flag':'1','value':'3f367296c2174b7981342dc6fcb39d64','label':'防火墙'},{'flag':'1','value':'8a3e05eeedf54f8cbed37c6fb38c6385','label':'负载均衡'},{'flag':'1','value':'4f0ebc601dfc40ed854e08953f0cdce8','label':'其他设备'},{'flag':'1','value':'6','label':'路由器'},{'flag':'1','value':'4','label':'交换机'},{'flag':'1','value':'b216ca1af7ec49e6965bac19aadf66da','label':'服务器'},{'flag':'1','value':'7','label':'安全设备'},{'flag':'1','value':'cd8b768a300a4ce4811f5deff91ef700','label':'DWDM\\SDH'},{'flag':'1','value':'5','label':'防火墙(模块)'},{'flag':'1','value':'01748963956649e589a11c644d6c09b5','label':'机箱'}]"; public static void init_connection() throws Exception { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); connection = factory.createConnection(); connection.start(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); topic = session.createTopic("java.activemq.tps"); producer = session.createProducer(topic); producer.setDeliveryMode(DeliveryMode.PERSISTENT); } public static void sendMessage(String msg) { TextMessage message; try { message = session.createTextMessage(); message.setText(str); producer.send(message); } catch (JMSException e) { e.printStackTrace(); } } public static void close() throws Exception { connection.close(); } public static void main(String[] arg) throws Exception { long start = System.currentTimeMillis(); ExecutorService es = Executors.newFixedThreadPool(10); final CountDownLatch cdl = new CountDownLatch(size); init_connection(); for (int a = 0; a < size; a++) { es.execute(new Runnable() { @Override public void run() { sendMessage(str); cdl.countDown(); } }); } cdl.await(); es.shutdown(); long time = System.currentTimeMillis() - start; System.out.println("插入" + size + "条JSON,共消耗:" + (double)time / 1000 + " s"); System.out.println("平均:" + size / ((double)time/1000) + " 条/秒"); close(); } }
相关推荐
Jmeter压力测试 ActiveMQ性能 JMS性能测试
ActiveMQ 基准性能测试 所有的测试都在两台服务器上完成。服务器由网线相连。消息消费者和提供者被安装在x86的机器上,配置为2.40G CPU和1.0GB内存,操作系统为Windows Server 2003 SP1,Broker被安装在一台x86机器...
activemq性能与高可用性测试,activemq性能与高可用性测试。
脑图内容涵盖视频的99%的笔记,含有自己编写的代码文件,外加了自己对一些问题的测试与回答。 消息中间件之ActiveMQ 消息中间件已经成为互联网企业应用系统内部通信的核心手段,是目前企业内主流标配技术, 它...
⒋ 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 ⒌ 支持多种传送协议:in-VM,...
中间件技术 实验三 消息中间件应用开发: - CSDN博客 https://blog.csdn.net/lly1122334/article/details/80139790
文章详细从性能、安装、配置、管理、可靠性/故障切换、事务等各个方面详细对比分析了优缺点。希望能帮到你
ActiveMQ 是Apache出品,最流行的,能力...可以用作内存JMS提供程序,非常适合单元测试JMS 支持可插拔传输协议,例如in-VM,TCP,SSL,NIO,UDP,多播,JGroups和JXTA传输 使用JDBC和高性能日志支持非常快速的持久性
本文档包含了持久性、非持久性、异步同步和多topic下的所有压测数据,非常清晰的分析了各种压测数据,并且根据原理分析结果的合理性
一: ActiveMQ简介 包括:是什么、能干什么、特点;消息中间件的功能、特点、应用场景等 n 二: ActiveMQ安装和基本使用 包括:通过源码安装、基本的配置示例...包括:影响ActiveMQ性能的因素、常见的优化方式和配置等
可帮助快速了解kafka、activemq 两者在 Queue topic producer consumer 使用异同点,demo仅仅是最简化代码,演示通信和使用,无法对两者的集群模式进行测试,如果有对集群模式有兴趣,可自行扩展集群节点,更好 的...
本文档总结了Activemq的所有特性,包括整体架构、消息传输原理、部署、消息存储和通讯机制,文字结合图示,读了这个文档,会对Acitvemq有个非常透彻的了解
activemq,httpsqs,kestrel,memcacheq等消息队列的安装部署,以及性能测试的详细说明文档
对 Active MQ 的测试报告,描述了Active MQ的性能及其他情况
有关修改代码,构建项目,运行测试,IDE集成等的详细信息,请参见《 。 建立状态 建立状态: 建立ASYNC IO库 ActiveMQ Artemis提供了两种日志持久性类型:NIO(使用Java NIO库)和ASYNCIO,与Linux内核libaio库进行...
4、通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 5、支持多种传送协议:in-...
809协议网关应用采用mina+spring架构,... 本网关应用已历经并通过多次交通部部标的检测,性能稳定,适用于车辆监控平台之间的实时数据交换,经测试在普通pc机上,单个网关应用可支持1000wGPS数据/小时的数据处理能力。
3. 高性能,最少的计算开销。 4. 可嵌入的Web服务组件:例如可以嵌入到Spring Framework和Geronimo中。 在面向服务的架构(SOA)基础设施项目中,CXF通常和Apache ServiceMix,Apache Camel以及Apache ActiveMQ一起...
1、网关应用采用mina+spring+ehcache框架,主要功能是接受终端的tcp/udp链接,解析终端的上行消息以及封装平台下发的下行消息,本网关应用已历经并通过多次交通部部标部标的检测,性能稳定;同时网关采用json消息与...