最近生产环境的消息通知队列发生了大量的数据积压问题,从而影响到整个平台商户的交易无法正常进行,最后只能通过临时关闭交易量较大的商户来缓解消息队列积压的问题,经线上数据分析,我们的消息队列在面对交易突发洪峰的情况下无法快速的消费并处理队列中的数据,考虑到后续还会出现各种交易量突发状况,以下为针对消息队列(ActiveMQ)的优化过程。
Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息。在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量.。消息队列已经被分为两组:brokerless和brokered。 brokerless消息队列是对等的,没有中间商参与信息的传递,而brokered队列有一些服务器端点之间。 性能分析的一些系统: Brokerless nanomsg ZeroMQ Brokered ActiveMQ
采用了spring+quartz+fastjson+rabbitmq来实现。和传统SEDA架构区别比较大的地方在于:
缓存系统:memcached(group cache)、redis、mongodb、Couchbase(CouchDB、Membase、CouchOne) http缓存:varnish、nginx、traficserver、squid 负载均衡:lvs、f5、nginx、haproxy 代理:nginx 集群操作系统(运行在单机系统上):Mesos 集群管理:Kubernetes Web服务器:nginx、lighthttpd、apache、tengine WSGI实现: uWSGI、gunicorn We
常用的 MQ组件有 Kafka、RabbitMQ、RocketMQ、ActiveMQ、ZeroMQ、MetaMQ。当然 Kafka的功能更加强大,其它 MQ都有自己的特点和优势,如下:
操作系统:Centos,※,Ubuntu,Redhat※,,suse,Freebsd
首先本文将以Java扩展一个返回两个数值之和函数的例子来简单演示整个过程。 总体来说,二次开发扩展JMeter的函数可以分成下面几个步骤:
在分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构;是大型分布式系统不可缺少的中间件。目前使用较多的消息队列有ActiveMQ、RabbitMQ、Kafka、RocketMQ、MetaMQ等。springboot提供了对JMS系统的支持;springboot很方便就可以集成这些消息中间件。
activemq官网给出了3种master/slave的HA方案,详见:http://activemq.apache.org/masterslave.html ,基于共享文件目录,db,zookeeper。 下面演示了如何在本机搭建基于zookeeper的activemq集群: 一、在目录activemq1下安装activemq(可参考上篇内容),然后修改conf/activemq.xml 1 <broker xmlns="http://activemq.apache.org/schema/cor
原文地址:https://blog.csdn.net/linsongbin1/article/details/47781187
ActiveMQ是什么? ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。 JMS 简介 • JMS(Java Message Service),即:java消息服务应用程序接口。 • 是Java平台面向消息中间件(MOM)的API/技术规范。 • 场景:应用与两个应用程序之间,或者分布式系统架构中分发消息,可进行异 步/同步方式的通讯,和平台API无关,基本多数的MOM都提供
全称:Java Message Service 中文:Java消息服务。 JMS是Java的一套API标准,最初的目的是为了使应用程序能够访问现有的MOM系统(MOM是Message Oriented Middleware的英文缩写,指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。);后来被许多现有的MOM供应商采用,并实现为MOM系统。 基于JMS实现的MOM,又被称为JMS Provider。
现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的。
1.背景 最近因为工作需要,调研了追求高吞吐的轻量级消息系统Kafka,打算替换掉线上运行的ActiveMQ,主要是因为明年的预算日流量有十亿,而ActiveMQ的分布式实现的很奇怪,所以希望找一个适合分布式的消息系统。 以下是内容是调研过程中总结的一些知识和经验,欢迎拍砖。 2.基础知识 2.1.什么是消息队列 首先,我们来看看什么是消息队列,维基百科里的解释翻译过来如下: 队列提供了一种异步通信协议,这意味着消息的发送者和接收者不需要同时与消息保持联系,发送者发送的消息会存储在队列中,直到接收者拿到它。
MQ是现在大型系统架构中必不可少的一个重要中间件,之前有偏文章《MQ(消息队列)常见的应用场景解析》介绍过MQ的应用场景,现在流行的几个MQ是rabbitmq,rocketma,kafka,这几个MQ比较最容易找到相关的文章,而也有些系统使用的是activemq,因activemq是相对比较传统的MQ,在使用过程中还是会遇到很多坑,这里简单列举几个大家可能会遇到的问题,把自己使用acitvemq的经验和大家分享一下。
ActiveMQ。ActiveMQ是一个易于使用的消息中间件。 详细简介:https://my.oschina.net/xshuai/blog/869106 消息中间件 我们简单的介绍一下消息中间件,对它有一个基本认识就好,消息中间件(MOM:Message Orient middleware)。 消息中间件有很多的用途和优点: 1. 将数据从一个应用程序传送到另一个应用程序,或者从软件的一个模块传送到另外一个模块; 2. 负责建立网络通信的通道,进行数据的可靠传送。 3. 保证数据不重发,不丢失
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Storm,Spark,Flink都支持与Kafka集成。现在我们的数据实时处理平台也使用到了kafka。现在它已被多家不同类型的公司作为多种类型的数据管道和消息系统使用。
ActiveMQ是Apache发布的一款功能强大的消息中间件,它基于JMS 1.1 和 J2EE 1.4规范,目前使用十分广泛。
1 同步索引库分析 方案一:在taotao-manager中,添加商品的业务逻辑中,添加一个同步索引库的业务逻辑。
要做技术选型,那么必须对现今的各个消息中间件有个深入的理解才能做技术选型。否则别人问你,你为什么要用这个消息中间件,你说不出个所以然来,怎么做架构师呢?
分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。
转载了好几篇关于mq的博文,但是总感觉对mq的理解使用都不到位。这里打算从原理到使用都从头来一遍。
CAP认为,一个提供数据服务的存储系统无法同时满足数据一致性、数据可用性、分区耐受性(系统具有跨网络分区的伸缩性),在大型网站中,通常会选择强化分布式存储系统的可用性和伸缩性在某种程度上放弃一致性 数据一致性分为:
接口性能是做接口性能测试过程中使用的测试策略以及Groovy脚本实现,以及性能测试工具的实现,如timewatch和netdata汉化,欢迎关注“FunTester”。
性能测试对于大部分测试人员都是一个神秘地带,因为在很多公司,性能测试都是由一个性能测试团队来做,所以普通测试人员没有机会接触到真实的性能测试,因而很难学习到很多新的测试实践知识。
ps:性能测试很多专有名词,eg 性能测试 负载测试 压力测试 容量测试 极限测试等, 概念又多又乱,界限又很模糊,如下:
性能测试:是指在特定情况下测试系统如何执行的。资源的使用、可扩展性和可靠性也是性能测试的范畴。性能测试是性能工程的一个子集,主要发现软件架构以及设计导致的性能问题。
基于Web服务器的应用系统由于提供浏览器界面而无须安装,大大降低了系统部署和升级成本,得以普遍应用。目前,很多企业的核心业务系统均是Web应用,但当Web应用的数据量和访问用户量日益增加,系统不得不面临性能和可靠性方面的挑战。因此,无论是Web应用系统的开发商或最终用户,都要求在上线前对系统进行性能,科学评价系统的性能,从而降低系统上线后的性能风险。
1.为什么选择zookeepr+leveldb,构建activemq主从集群 官网关于主从集群的描述的原文地址为:http://activemq.apache.org/masterslave.html。下面是我的翻译. activemq有3中主从配置方式 主从类型 必备条件 优点 缺点 Shared File System Master Slave(共享文件系统) 需要一个共享文件系统 例如:SAN 可按需运行多个从节点,并能从故障中自动恢复 需要一个SAN JDBC Master Slave 需要个共享的
下方查看历史精选文章 重磅发布 - 自动化框架基础指南pdfv1.1 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 在性能测试系列前面几篇文章中我们比较详细的介绍了相关的知识 从终端用户感受来体验性能指标度量 如何建立有效的性能指标监控及诊断调优体系 如何有效的选择性能测试工具 简单谈下性能测试 jmeter性能测试实践注意事项 如何进行有效的性能测试 所有性能相关的文章,均会同步发布至下面的公众号,大家可
公司的这个产品需要做性能测试。得知道哪些功能需要先做性能测试,哪些功能后做性能测试。
在前面几篇性能测试相关文章,我们积累的大量的各种相关知识,下面我们基于我的实践和性能测试原理对性能测试流程进行一次整体的总结。
来源:和大黄 blog.csdn.net/HEYUTAO007/article/details/50131089
大意是:兼容性好并且功能强大的开源多协议消息中间件,那具体是怎么体现的呢? 1.兼容性好: ActiveMQ可以很容易内嵌到使用Spring的系统里面去, 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 2.功能强大: 支持通过JDBC和journal提供高速的消息持久化, 支持客户端-服务器,点对点 支持Ajax 支持与Axis的整合, WebServices 可以很容易的调用内嵌JMS provider进行测试 从设计上保证了高性能的集群
提起性能测试,可能很多互联网从业人员会感觉比较混淆(不仅仅只是测试人员会弄混淆,很多开发人员、管理人员对性能测试也都是一知半解)。性能测试,它是属于测试领域一个专业细分领域,其涉及到的范围和所需要的技能也是非常广而精,从大的类型来划分,常见的它又被分为:
在当今快节奏的软件开发环境中,性能测试是确保应用程序在各种条件下都能稳定运行的关键步骤。通过性能测试,开发团队能够识别和解决潜在的性能瓶颈,提高系统的可伸缩性和响应性。本篇博客将深入探讨性能测试的方法、工具和最佳实践,助力开发者更好地理解和应用性能测试。
接上一篇《ActiveMQ从入门到精通(一)》,本篇主要讨论的话题是:消息的顺序消费、JMS Selectors、消息的同步/异步接受方式、Message、P2P/PubSub、持久化订阅、持久化消息到MySQL以及与Spring整合等知识。
性能(performance):是系统实现其功能的能力。例如,响应时间、吞吐能力、事务处理数。
下方查看历史精选文章 重磅发布 - 自动化框架基础指南pdfv1.1 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 在性能测试系列前面几篇文章中我们比较详细的介绍了相关的知识 从终端用户感受来体验性能指标度量 如何建立有效的性能指标监控及诊断调优体系 如何有效的选择性能测试工具 简单谈下性能测试 jmeter性能测试实践注意事项 所有性能相关的文章,均会同步发布至下面的公众号,大家可以关注,以免错过 而本文讲
由于新公司业务快速发展带来的流量突增以及技术负债各方面,性能的问题就开始急速冒头,这点很多创业阶段的中小型公司都存在该问题,表现在如下几个方面:
下方查看历史精选文章 重磅发布 - 自动化框架基础指南pdfv1.1 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 在性能测试系列前面几篇文章中我们比较详细的介绍了相关的知识 从终端用户感受来体验性能指标度量 如何建立有效的性能指标监控及诊断调优体系 如何有效的选择性能测试工具 简单谈下性能测试 jmeter性能测试实践注意事项 如何进行有效的性能测试 所有性能相关的文章,均会同步发布至性能测试专用公众号,
在我们日常生活和工作中,软件已经成为不可或缺的一部分。然而,软件的性能问题经常会影响到用户的体验和企业的业务,因此对软件系统进行性能测试变得至关重要。软件性能测试可以帮助测试团队和业务团队了解软件在真实场景下的表现,以及对系统性能进行优化和改进。通过模拟真实场景下的负载和压力,测试团队可以发现系统的瓶颈和性能瓶颈,从而对系统进行优化和改进,提高软件的稳定性和可靠性。软件性能测试可以提高软件团队的信心和自信心,让他们在开发和维护过程中更加自信和有信心。
这段时间面试了一些做过性能测试的应聘者,从结果来罕有能让人满意的。整理了一些我常问的性能测试问题,希望对有志于转型性能测试或者正在找性能测试相关工作的同行有所帮助。若对于以下问题有想法也欢迎加我微信进行沟通。 性能测试的意义和作用,说出因为性能不良造成的质量事故? 如何进行性能测试,整体的性能测试流程是什么? 确定需求-制定计划和策略-准备环境(干净的,数据)-编写脚本-设计测试场景-运行-监控执行-分析测试结果 性能测试的难点在哪里?如何克服? 如何选择性能测试工具? 如何确定性能测试团队的人力资源需求
从14年入行至今,今年是我从事软件测试工作的第十个年头。从功能到自动化测试,然后负责性能测试团队和质量团队的技术专项治理,再到测试专家角色,负责整个技术项目的产品/运营和质量保障工作。其中性能测试和线上稳定性保障,算是我最擅长的技术领域。很多同学咨询过我,性能测试如何入门,如何快速提升压测和性能优化相关的技能。
领取专属 10元无门槛券
手把手带您无忧上云