
ActiveMQ技术详解
文章平均质量分 69
ActiveMQ技术详解,关注于ActiveMQ与JMS的基础知识,常用功能,以及一些简单的原理性分析。
优惠券已抵扣
余额抵扣
还需支付
¥69.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
kimmking
秦金卫(KimmKing),Apache Dubbo/ShardingSphere PMC,前某集团高级技术总监/阿里架构师/某商业银行北京研发中心负责人,阿里云MVP、腾讯TVP、TGO鲲鹏会会员、1024学院CTO培训班第六届学员。关注于互联网,电商,金融,支付,区块链等领域,熟悉海量并发低延迟交易系统的设计实现,10多年研发管理和架构经验,熟悉各类中间件,擅长于SOA/微服务等分布式系统架构。《微服务架构实战:基于Dubbo、Spring Cloud和Service Mesh》、《JVM核心技术32讲》合著作者。http://kimmking.github.io
展开
-
ActiveMQ REST Management API
ActiveMQ的管理接口是基于JMX的(参见 JMX操作ActiveMQ(1)、JMX操作ActiveMQ(2)),通过管理接口我们可以与Broker交互,查询各种Broker状态、统计数据,浏览连接、消费者、生产者,以及管理消息。虽然ActiveMQ通过CMS(支持c++)、NMS(支持.net)以及多种protocol(STOMP、MQTT、AMQP等)支持了多种平台环境下的消息发送接收原创 2014-02-11 17:54:57 · 14158 阅读 · 9 评论 -
ActiveMQ中使用mysql做持久化报错:Cannot execute statement: impossible to write to binary log since BINLOG_FORM
ActiveMQ中如果使用mysql innodb的同时,开启了binlog,那么在ack消息的时候,日志里就可会报错:java.sql.SQLException: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a storage原创 2014-01-02 12:32:25 · 20833 阅读 · 0 评论 -
使用ActiveMQ+MQTT实现Android点对点消息通知
ActiveMQ使用MQTT协议,加上android上的paho包,即可简单实现消息通知功能,但是mqtt协议只支持topic,而且不能用selector,使得点对点的消息投递变成问题。有两个解决思路: 每个clientId建一个topic、实现某些特征的消息投递到指定的订阅者......原创 2013-12-20 16:37:20 · 52540 阅读 · 40 评论 -
ActiveMQ的集群与高可用
ActiveMQ的集群与高可用针对大量的消息吞吐量、对MQ可用性要求非常严格的场景、或者非常复杂的消息处理关系情况下,单个MQ实例通常已经无法满足我们的需要,这时候ActiveMQ的集群和高可用方案就对我们很重要了。1.client的集群对消费者来说,使用queue即可做到某种意义上的消费者集群,所有消费者共同处理同一类消息。非持久订阅的topic,这种功能没有实现。但是持久订阅的原创 2013-10-31 11:59:09 · 29344 阅读 · 0 评论 -
ActiveMQ5.9.0的三个新功能之一:hawtio-新的web管理控制台
hawtio-web management console简单的说,就是终于有个像样的管理控制台了。页面基于jquery、angularJS、bootstrap等主流js框架,界面简洁、操作流畅。集成了JMX、LOG、Health、connect remote server等功能。主要以JMX为主,原来的create destinations、send、delete等功能都集成到J原创 2013-10-30 18:31:44 · 16814 阅读 · 1 评论 -
ActiveMQ内存设置和流控
从jvm内存、broker内存、生产者和消费者内存配置和流控方面介绍ActiveMQ的内存配置、流控与使用。原创 2013-07-31 17:25:40 · 38393 阅读 · 0 评论 -
ActiveMQ的BlobMessage传输文件示例:完全嵌入式的使用jetty的fileserver
上文《ActiveMQ传输文件的几种方式原理与优劣》中提到BlobMessage这种利用fileserver中转的高效处理文件的方式。其实ActiveMQ自带的web console中已经有了fileserver的demo,位于ActiveMQ安装目录的webapps下。启动ActiveMQ的时候,如果配置文件中import了jetty.xml,一般会自动加载这个fileserver,就可原创 2013-07-23 14:19:02 · 10271 阅读 · 6 评论 -
JMX操作ActiveMQ(2)
默认情况下,ActiveMQ使用useJmx后,jmx的url为service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi这时,jmx的MBean server被绑死在localhost上,无法在broker所在机器以外的机器访问。其实ActiveMQ提供了jmx相关的几个配置,不仅可以调整这个url中的ip和端口,还可以使用其他的MBe原创 2013-07-01 22:22:39 · 12884 阅读 · 3 评论 -
JMX操作ActiveMQ(1)
我们知道ActiveMQ broker的管理接口是通过JMX方式提供的。一个简单的访问方式就是通过jconsole,输入service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi需要注意的是:1、默认JMX功能是没有打开的,需要在activemq.xml的broker配置上添加useJmx="true"2、需要在managemen原创 2013-06-25 16:14:27 · 17676 阅读 · 4 评论 -
ActiveMQ高级特性:虚拟Destinations实现消费者分组与简单路由
ActiveMQ支持的虚拟Destinations分为有两种,分别是Ø 虚拟主题(Virtual Topics)Ø 组合 Destinations(CompositeDestinations)这两种虚拟Destinations可以看做对简单的topic和queue用法的补充,基于它们可以实现一些简单有用的EIP功能,虚拟主题类似于1对多的分支功能+消费端的cluster+failover,组合Destinations类似于简单的destinations直接的路由功能。原创 2013-08-05 21:40:57 · 26807 阅读 · 9 评论 -
ActiveMQ的kahadb写入消息性能测试(包括SSD硬盘)
测试用例如下列表所示,由此可以看出1、SSD硬盘可以提升写入大概20%的性能2、1K以内的消息,SATA硬盘一秒大概可以写入60003、1K以内的消息,SSD大概能写入78004、batch、filesize、甚至同步异步对其写入影响都不大。有时间再测试下更大消息和更多场景,再结合现象和源码分析一下。128字节的消息-------------------------原创 2013-01-14 18:20:40 · 6631 阅读 · 0 评论 -
ActiveMQ集群:网络连接模式(network connector)详解
ActiveMQ集群:网络连接模式(network connector)详解kimmking@163.com2012-12-26网络连接模式(network connector)针对海量消息所要求的横向扩展性和系统的高可用性,ActiveMQ提供了网络连接模式的集群功能。简单的说,就是通过把多个不同的broker实例连接在一起,作为一个整体对外提供服务,从而提高整体对外的消息服务能原创 2012-12-30 17:53:03 · 36759 阅读 · 16 评论 -
ActiveMQ的断线重连机制
断线重连机制是ActiveMQ的高可用性具体体现之一。具体就是使用failover方式,使得连接断开之后,可以不断的重试连接到一个或多个brokerURL。例如:failover:(tcp://127.0.0.1:61616) ,这里可以使用多个url。默认情况下,如果client与broker直接的connection断开,则client会新起一个线程,不断的从url参数中获取一原创 2012-12-28 14:41:46 · 51998 阅读 · 12 评论 -
ActiveMQ消息特性:延迟和定时消息投递(Delay and Schedule Message Delivery)
有时候我们不希望消息马上被broker投递出去,而是想要消息60秒以后发给消费者,或者我们想让消息没隔一定时间投递一次,一共投递指定的次数。。。类似这种需求,ActiveMQ提供了一种broker端消息定时调度机制。我们只需要把几个描述消息定时调度方式的参数作为属性添加到消息,broker端的调度器就会按照我们想要的行为去处理消息。一共有四个属性:Prope原创 2012-12-27 15:37:23 · 28890 阅读 · 4 评论 -
ActiveMQ队列特性:通配符(Wildcards)
通配符(Wildcards)一般情况下,我们使用层次结构的方式来组织队列,比如A.B.C.D,这样便于归类和管理。我们也可以使用通配符来配置或是操作多个队列。通配符有三个:. 用来分隔路径* 用来匹配路径中的一节> 用来匹配任意节的路径订阅信息解释PRICE.>Any price for any produc原创 2012-12-26 22:01:29 · 5850 阅读 · 0 评论 -
ActiveMQ队列特性:队列选项(Destination options)
队列选项(Destination options)队列选项是给consumer在JMS规范之外添加的功能特性,通过在队列名称后面使用类似URL的语法添加多个选项。选项默认值描述consumer.prefetchSize不定consumer持有的未确认最大消息数量 参见:prefetch。cons原创 2012-12-26 21:29:41 · 10669 阅读 · 1 评论 -
ActiveMQ队列特性:配置启动队列(Configure Startup Destinations)
配置启动队列(Configure Startup Destinations)虽然ActiveMQ可以在使用的时候自动创建队列,但有些情况下配置启动时创建还是很有必要的:例如配置了安全设置以后使用队列的用户没有创建的权限。此时只需要在配置文件的broker节点添加需要启动时创建的队列即可:<beans xmlns="http://www.springframework.o原创 2012-12-26 21:18:45 · 7093 阅读 · 0 评论 -
ActiveMQ队列特性:删除不活动的队列(Delete Inactive Destinations)
删除不活动的队列(Delete Inactive Destinations)一般情况下,ActiveMQ的queue在不使用之后,可以通过web控制台或是JMX方式来删除掉。当然,也可以通过配置,使得broker可以自动探测到无用的队列(一定时间内为空的队列)并删除掉,回收响应资源。配置如下: "http://activemq.apache.org/schema/cor原创 2012-12-26 20:42:53 · 18043 阅读 · 11 评论 -
ActiveMQ队列特性:组合队列(Composite Destinations)
组合队列(Composite Destinations)当你想把同一个消息一次发送到多个消息队列,那么可以在客户端使用组合队列。// send to 3 queues as one logical operationQueue queue = new ActiveMQQueue("FOO.A,FOO.B,FOO.C");producer.send(queue, someMessag原创 2012-12-26 20:27:39 · 6348 阅读 · 0 评论 -
ActiveMQ消息特性:消息属性
消息属性的说明:queue的消息默认是持久化的消息的优先级默认是4消息发送时设置了时间戳消息的过期时间默认是永不过期,过期的消息进入DLQ,可以配置DLQ及其处理策略如果消息时重发的,将会标记出来JMSReplyTo标识响应消息发送到哪个queueJMSCorelationID标识此消息相关联的消息id,可以用这个标识把多个消息连接起来JMS同时也记录了消息重发的次数,默认是6次如果有原创 2012-12-23 17:21:36 · 13777 阅读 · 0 评论 -
分享一个两年前写的JMS&ActiveMQ入门的ppt
http://activemq-store-mongodb.googlecode.com/files/JMSandActiveMQ.pptx原创 2012-12-25 16:23:33 · 8980 阅读 · 1 评论 -
ActiveMQ资料大全
官方文档入门:http://activemq.apache.org/getting-started.html常见问题:http://activemq.apache.org/faq.html各种功能特性详解:http://activemq.apache.org/features.html连通性相关文档:http://activemq.apache.org/connectivity原创 2012-12-20 21:47:59 · 16333 阅读 · 0 评论 -
ActiveMQ传输文件的几种方式原理与优劣
本文讨论ActiveMQ传输文件的几种方法的原理及其利弊,作为消息发送、直接传输文件、使用ftp或http中转。最后介绍扩展ActiveMQ实现自定义文件传输方式,讨论如何实现高效的文件传输。by kimmking作为消息发送按照JMS规范,为了保证可靠性,所有的消息都应该是发送到broker,然后交由broker来投递的。也即是说其实JMS是不建议或不支持传输文件的。对于比较小的文件原创 2012-12-20 20:24:52 · 52564 阅读 · 7 评论 -
单独部署activemq-web-console
activemq-web-console的默认使用方式是通过在activemq.xml中导入jetty.xml配置一个jetty server来实现的。其实activemq-web-console完全可以和activemq-broker分开来部署。部署的两种方式:1、直接把apache-activemq-5.7.0-bin.zip/webapps部署到web容器,添加必要的ja原创 2012-12-18 16:12:43 · 7577 阅读 · 3 评论 -
ActiveMQ vs JbossMQ
http://activemq.apache.org/how-does-activemq-compare-to-jbossmq.html 这两个MQ有很多相似性:都支持JMS 1.1,可以运行在Jboss 4.x之上。但是ActiveMQ有一些特定的不同和改进(至少在我们看来是如此): n ActiveMQ 很好地运行在任何jvm,而不是在Jboss应用服务器中n原创 2012-12-03 21:47:38 · 3148 阅读 · 0 评论 -
ActiveMQ vs Fuse Message Broker
http://activemq.apache.org/how-does-activemq-compare-to-fuse-message-broker.htmlFuse Message Broker 是FuseSource提供的Apache ActiveMQ可信发布版本。FuseSource 作为Apache ActiveMQ社区的一部分,负责其所有的开发和bu原创 2012-12-03 21:46:25 · 2894 阅读 · 0 评论 -
ActiveMQ vs AMQP
http://activemq.apache.org/how-does-activemq-compare-to-amqp.html AMQP(Advanced Message Queue Protocol)是一个消息client和broker交互的规范。是一个关于client到消息broker的wire-level协议通信的规范。不像ActiveMQ一样是一个消息系统,而仅仅是一个原创 2012-12-03 21:45:26 · 7122 阅读 · 0 评论 -
影响ActiveMQ性能的几个重要因素
影响ActiveMQ性能的几个重要因素 影响ActiveMQ性能的几个重要因素Queue1、Send/dispatch Async 影响非常大,本地测试2个数量级2、Not transacted 去掉了记录redo日志3、Auto_ACK/Optim_ACK 优化确认4、Non-persistence 持久化消息,跟下面几点有关5、pend原创 2012-12-01 13:45:47 · 7997 阅读 · 0 评论 -
ActiveMQ性能与调优相关链接
ActiveMQ性能与调优相关链接 amq自己带了一个性能test:http://activemq.apache.org/activemq-performance-module-users-manual.html使用jmeter压测的介绍:http://activemq.apache.org/jmeter-performance-tests.html我个人的经验:htt原创 2012-12-01 13:46:32 · 5446 阅读 · 2 评论 -
JMS介绍:我对JMS的理解和认识
JMS and ActiveMQ first lesson -- jms基础概念和应用场景2011-6-18 PM 9:30主讲:kimmking kimmking@163.com>整理:林木森ppt下载地址:http://code.google.com/p/activemq-store-mongodb/downloads/list下面开始:kimmking:介绍下原创 2011-06-30 13:58:00 · 18171 阅读 · 14 评论