ActiveMQ 学习笔记】的更多相关文章

  摘要 ActiveMQ学习笔记(四)http://my.oschina.net/xiaoxishan/blog/380446 中记录了如何使用原生的方式从ActiveMQ中收发消息.可以看出,每次收发消息都要写许多重复的代码,Spring 为我们提供了更为方便的方式,这就是Spring JMS.我们通过一个例子展开讲述.包括队列.主题消息的收发相关的Spring配置.代码.测试. ActiveMQ Spring JMS 目录[-] 1.使用maven管理依赖包 2.队列消息的收发 2.1Sp…
0.activemq的概念 activemq实现了jms(java Message server),用于接收,发送,处理消息的开源消息总线. 1.activemq和jms的区别 jms说白了就是java message service,是J2EE规范的一部分,跟jdbc差不多,sun只提供了接口,由各个厂商(provider)来进行具体的实现,然后使用者使用他们的jar包进行开发使用即可. 另外在jms的API中,jms传递消息有两种方式,一种是点对点的Queue,还有一个是发布订阅的Topic…
关键接口和类: ConnectionFactory connectionFactory;//连接工厂 Connection connection;//连接 Session session; Destination destination;//目的 MessageProducer messageProducer;//消息生产者 Message message;//消息 MessageConsumer messageConsumer;//消息消费者 1.发送消息 //ActiveMQ用户名.Acti…
http://somebody-hjh.iteye.com/blog/726050 一.概述 Message,即消息.人与人之间通过消息传递信息.言语.眼神.肢体动作都可被视为消息体.当然还有我们经常用到的邮件.短信.计算机系统也由消息来主导运行.每一条指令的执行,每一个数据包的传递.软件系统间的合作也不例外,消息告诉各个系统应该怎样协作.事件处理机制,也是消息传送的过程.消息无处不在. 消息分为同步消息和异步消息.同步消息在接收到对方的返回前,需要挂起,直到返回或超时.异步消息只需要发送消息,…
上文可见,JMS Native API使用起来不是特别方便.好在Spring提供了很好的JMS支持. (一)配置ConnectionFactory 如果使用连接池的话,不要忘记activemq-pool-5.6.0.jar <bean id="connectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">…
(一)什么是JMS jms即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信.Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持. (二)常见的JMS提供商有哪些? IBM 的 MQSeries BEA 的 Weblogic JMS service Apache 的 ActiveMQ 本系列都采用ActiveMQ (三)核…
基本步骤: ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616"); Connection connection = factory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destin…
1.接口 JMS 公共 点对点域 发布/订阅域 ConnectionFactory QueueConnectionFactory TopicConnectionFactory Connection QueueConnection TopicConnection Destination Queue Topic Session QueueSession TopicSession MessageProducer QueueSender TopicPublisher MessageConsumer Qu…
1. 什么时候使用ActiveMQ 1. 异步通信 2. 一对多通信 3. 做个系统的集成,同构,异构 4. 作为RPC的替代 5. 多个应用相互解耦 6. 作为事件驱动架构的幕后支撑 7. 为了提高性能的可伸缩性 2. ActiveMQ的优化 2.1 ActiveMQ的性能依赖的因素 2.2 优化建议…
1. 监控和管理Broker Web Console 方式:直接访问ActiveMQ的管理页面:http://localhost:8161/admin,默认的用户名和密码是admin/admin.具体配置在conf/jetty.xml里面,这就是我们前面例子中一直使用的方式. Hawtio-web Management Console方式: 默认用户名密码是admin/admin JMX方式. 2. 集成ActiveMQ和Tomcat ActiveMQ和Tomcat可以很自如的集成在一起使用,而…
1. Message Selectors JMS Selectors 用在获取消息的时候,可以基于消息属性和Xpath语法对消息进行过滤.JMS Selectors有SQL92语义定义.以下是个Selectors的例子: consumer = session.createConsumer(destination, "JMSType='car' AND weight > 2500"); 1. JMS Selectors表达式中,可以使用IN, NOT IN, LIKE等 2. 需要…
1. Exclusive Consumer 独有消费者:Queue中的消息是按照顺序被分发到consumer的,然而,当你有多个consumers同时从相同的queue中提取消息时,你将失去这个保证.因为这些消息是被多个线程并发的处理.有的时候,保证消息按照顺序处理是很重要的.例如:你可能不希望在插入订单操作结束之前执行更新这个订单的操作. ActiveMQ从4.x版本开始支持Exclusive Consumer.Broker会从多个Consumers中挑选一个consumer来处理queue中…
1. Blob Message 有些时候,我们需要传递Blob(Binary Large Objects)消息,在5.14之前,(5.12和5.13需要在jetty.xml中手动开启)可以按照如下的方式配置使用fileserver: 配置BLOB Tansfer Policy,可以在发送方的连接URI上设置,如: tcp://localhost:61616?jms.blobTransferPolicy.uploadUrl=http://localhost:8161/fileserver 在5.1…
1. Messaage Properties ActiveMQ支持很多消息属性,具体可以参考 http://activemq.apache.org/activemq-message-properties.html 常见得一些属性说明: 1. queue得消息默认是持久化得 2. 消息得优先级默认是4. 3. 消息发送时设置了时间戳. 4. 消息的过期时间默认是永不过期,过期的消息进入DLQ,可以配置DLQ及其处理策略. 5. 如果消息是重发的,将会被标记出来. 6. JMSReplyTo标识响应…
1. Optimized Acknowledgetment ActiveMQ缺省支持批量确认消息,由于批量确认会提高性能,如果希望在应用程序中禁止经过优化的确认方式,可以采用以下几种方式: 1. 在Connection的URI上启用Optimized Acknowledgements ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616?jms.optimizedAckno…
1. Message Cursors 1.1 概述 ActiveMQ发送持久化消息的典型的厝里方式是:当消息的消费者准备就绪时,消息发送系统把存储的消息按批次发送给消费者,在发送完一个批次的消息后,指针的标记位置指向下一个批次的待发消息的位置,进行后续的发送操作.这是一种 比较健壮和灵活的消息发送方式,但是大多数的情况下,消息的消费者不一定一直都处于这种理想的活跃状态. 因此,从ActiveMQ5.0.0版本开始,消息发送系统采用一种混合型的发送模式,当消息消费者处于活跃状态时,允许消息发送系统…
1. Visual Destinations 1.1 概述 虚拟Destination用来创建逻辑Destinations,客户端可以通过它来产生和消费消息,它会把消息映射到物理Destinations.ActiveMQ支持两种方式: 1. 虚拟主题(Virtual Topics) 2. 组合Destinations (Composite Destinations) 1.2 为何使用虚拟主题 ActiveMQ中,topic只有在持久订阅下才会持久化,持久订阅时,每个订阅者,都相当于一个queue…
1. Wildcards 1. Wildcards用来支持名字分层体系,它不是JMS规范的一部分,是ActiveMQ的扩展. ActiveMQ支持一下三种wildcards: 1. ".": 用于作为匹配路径上名字间的分隔符 2. “*": 用于匹配路径上的任何名字(不递归) 3. ”>“: 用于递归的匹配任何以这个名字开始的destination 2. 示例:设想你有如下两个destinations PRICE.STOCK.NASDAQ.IBM(IBM在NASDAQ的…
1. Queue consumer cluster ActiveMQ支持Consumer对消息的高可靠性的负载均衡消费,如果一个Consumer死掉,该消息会转发到其他的Consumer消费的Queue.如果一个Consumer获得消息比其他Consumer快,那么他将获得更多的消息.因此推荐ActiveMQ的Broker和Client使用failover://transport的方式来配置连接 2. Broker clusters 大部分情况下是使用一系列的Broker和Client连接到一起…
1. 多播协议multicast ActiveMQ使用Multicast协议将一个Service和其他的Broker是我Service里连接起来.IP Multicast是一个被用于网络中传输数据到其他一组接收者的技术. Ip muiticast传统的概念称为组地址,组地址是ip地址在ActiveMQ broker使用multicast协议去建立服务与远程的broker的服务的网络连接. 2. 基本的格式配置 multicast://ipaddress:port?transportOptions…
1. 启动多个Broker 在win10下同一台服务器启动多个Broker, 步骤如下: 1. 复制安装目录下的conf文件夹命名为conf2 2. 修改activemq.xml中的brokerName不能跟之前的一样.如: 3.修改数据存放的名称,如下: 4. 修改所有的transportConnectors端口,都要跟之前的不一样 修改jetty.xml下的 5. 复制bin目录重命名为bin2 修改activemq中的 ACTIVEMQ_CONF="$ACTIVEMQ_BASE/conf&…
1. 概述 ActiveMQ不仅支持persistent和non-persistent两种方式,还支持消息的恢复(recovery)方式. 2. PTP Queue的存储是很简单的,其实就是FIFO的Queue 2. PUB/SUB 对于持久化订阅主题,每一个消费者都将获得一个消息的复制. 3. 有效的消息存储 ActiveMQ 提供了一个插件式的消息存储,类似于消息的多点传播,主要实现了如下几种: 1. AMQ消息存储-基于文件的存储方式,是以前默认的消息存储. 2. KahaDB消息存储-提…
1. 连接到ActiveMQ Connector: Active提供的,用来实现连接通讯的功能,包括:client-to-broker,broker-to-broker.ActiveMQ允许客户端使用多种协议来连接. 1.1 配置Transport Connecto 在conf/activemq.xml里面,大致如下: <transportConnectors> <!-- DOS protection, limit concurrent connections to 1000 and f…
1. 添加依赖 spring 提供了对JMS的支持,需要添加Spring支持jms的包和Spring的核心包,如下: <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.15.5</version> </dependency> <dependency>…
Broker:相当于一个ActiveMQ服务器实例,在实际的开发中我们可以启动多个Broker. 命令行启动参数示例如下: 1. activemq start 使用默认的activemq.xml来启动. 2. activemq start xbean:file../conf/active-2.xml来使用指定的配置文件来启动 3. 如果不指定file,也就是xbean:activemq-2.xml,那么xml必须在classpath下 使用ActiveMQ来构建Java运用 这里主要将Activ…
1. JMS的API结构 其实上图中的五个API在第一节中我们都已经使用到了.本节将会讲非持久化和持久化topic的使用. 2. JMS的基本开发步骤 1. 创建一个JMS工厂,  ConnectionFactory 2.  通过Connection Factory来创建JMS的Connection 3. 启动JMS connection 4. 通过JMS connection来创建JMS Session 5. 创建JMS destination 6. 创建JMS producer或JMS Me…
1. 什么是ActiveMQ? ActiveMQ是Apache推出的,一款开源的,完全支持JMS1.1和j2ee1.4规范的JMS Provider实现的消息中间件(Message Oriented Middleware, MOM). 2. ActiveMQ能干什么? 最主要的功能就是:实现JMS Provider ,用来帮助实现高可用,高性能,可伸缩,易用和安全的企业级面向消息服务的系统. 3. ActiveMQ的特点: 多种语言和协议编写客户端.语言: Java, C, C++, C#, R…
ActiveMQ提供多种语言支持,如Java, C, C++, C#, Ruby, Perl, Python, PHP等.此处列举C#实例 下述C#实例代是基于QUEUE的P2P方式,如需要实现TOPIC的广播模式,请参见下方总结第四条. 一 .发送端 public void ActiveSend() { IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616"); //通过工厂建立连接 usi…
1.访问官网地址  http://activemq.apache.org/  ,进入Download 2.选择最新版本 3.或者选择历史版本 4.下载解压后 5.然后再 bin目录下选择对应版本,双击activemq.bat启动 bin 存放的是脚本文件 里面分32 位 64 位,可以选择启动conf 存放的是基本配置文件(可以通过修改jetty-realm.properties 进行配置用户名密码等等)data 存放的是日志文件docs 存放的是说明文档examples 存放的是简单实例lib…
1.PUT was not successful: 404 Not Found 结果:jetty.xml中开启BlobMessage相关配置 2.Consumer消费时:FileNotFoundException 结果:fileserver/WEB-IND/web.xml中RestFilter.DefaultServlet注释掉(治标不治本,请大神指点) 3.PUT was not successful: 500 Server Error 结果:…