ActiveMQ连接与QueueRequestor使用详解

需积分: 50 18 下载量 126 浏览量 更新于2024-08-09 收藏 1.77MB PDF 举报
"该资源是《ActiveMQ in Action》中文版的部分内容,主要涉及ActiveMQ的实例、连接方式、消息存储、安全管理以及在Java程序中的使用。" 在【标题】"连接QueueRequestor-iec 61131-8"中,提到了一个使用JMS(Java Message Service)与ActiveMQ进行交互的场景。代码展示了如何创建一个`QueueRequestor`来发送和接收消息。`QueueRequestor`是JMS中用于请求-响应模式的一个类,它简化了向队列发送请求并等待响应的过程。 1. **ActiveMQConnectionFactory**:这是创建JMS连接工厂的类,它允许我们指定连接ActiveMQ服务器的URI,这里是"tcp://localhost:61616",表示连接本地主机的61616端口。 2. **QueueConnection**:通过`createQueueConnection()`方法创建,用于建立到ActiveMQ的连接。 3. **connection.start()**:启动连接,使得客户端可以开始发送和接收消息。 4. **QueueSession**:使用`createQueueSession()`创建会话,参数`false`表示不启用事务,`Session.AUTO_ACKNOWLEDGE`设置确认模式为自动确认,即消息被消费后自动确认。 5. **Queue**:通过`createQueue()`方法创建队列对象,这里的队列名为"service.queue"。 6. **QueueRequestor**:创建请求者对象,用于发送请求消息并接收响应。 7. **TextMessage**:用于创建和处理文本消息,`createTextMessage()`创建消息,`getText()`获取消息内容。 8. **request()**:`QueueRequestor`的方法,发送请求消息并等待响应。在循环中,程序发送10条消息并打印每条响应。 在【描述】中,提到了ActiveMQ默认会复制消息,以保护生产者不受消息在代理中变化的影响。如果不想重复使用发送的消息,可以通过设置`copyMessageOnSend`属性为`false`在`ActiveMQConnectionFactory`上减少这种复制带来的开销。 在【标签】"JMS"中,表示这个主题与Java消息服务有关,JMS是一个标准接口,允许应用程序在不同的中间件提供商之间进行互操作,提供了异步消息传递的能力。 这段内容是关于如何使用JMS和ActiveMQ创建一个简单的请求-响应应用程序,并提供了关于ActiveMQ特性的额外信息,如消息复制和性能优化。