activemq安裝運行及其在springboot中的queue和topic使用
阿新 • • 發佈:2018-10-13
listen conn sendto pub package 密碼 topic red int
- 安裝activemq
- 運行
- springboot使用
- 依賴
- 配置
- Producer
- Consumer
- ComsumerTopic
- 使用
安裝activemq
http://activemq.apache.org/download.html
運行
運行
bin\win64\activemq.bat
訪問 http://127.0.0.1:8161/admin/
用戶名/密碼:admin/admin
springboot使用
依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> <version>2.0.5.RELEASE</version> </dependency>
配置
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.close-timeout=5000
spring.activemq.in-memory=false
spring.activemq.pool.max-connections=100
spring.activemq.send-timeout=3000
# spring.jms.pub-sub-domain=true 開啟topic訂閱,不開啟就是queue
Producer
生產者 package jky.springboot.alliinone.activemq; import javax.jms.Destination; import javax.jms.Topic; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.annotation.JmsListener; import org.springframework.jms.core.JmsMessagingTemplate; import org.springframework.stereotype.Component; @Component public class Producer { @Autowired private JmsMessagingTemplate jmsMessagingTemplate; // 使用queue public void send(Destination destination, final String message) { jmsMessagingTemplate.convertAndSend(destination, message + "from queue"); } //使用topic使用 //public void send(Topic topi, final String message) { // jmsMessagingTemplate.convertAndSend(topic, message + " from topic"); //} // 監聽out隊列 @JmsListener(destination="out.queue") public void consumerMessage(String text){ System.out.println("從out.queue隊列收到的回復信息為:"+text); } }
Consumer
queue消費者 package jky.springboot.alliinone.activemq; import org.springframework.jms.annotation.JmsListener; import org.springframework.messaging.handler.annotation.SendTo; import org.springframework.stereotype.Component; @Component public class Consumer { // 監聽mytest隊列,並且發送消息到out隊列 @JmsListener(destination = "mytest.queue") @SendTo("out.queue") public String receiveQueue(String text) { System.out.println("Consumer收到的信息為:"+text); return "return message "+text; } }
ComsumerTopic
topic消費者
package jky.springboot.alliinone.activemq;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
@Component
public class ComsumerTopic {
// 監聽sample topic
@JmsListener(destination = "sample.topic")
public void receiveTopic(String text) {
System.out.println("Consumer收到的topic信息為:"+text);
}
}
使用
隊列生產者生產消息
Destination destination = new ActiveMQQueue("mytest.queue");
producer.send(destination, "I am YeJiaWei");
topic生產者生產消息
Topic topic = new ActiveMQTopic("sample.topic");
producer.send(topic, "I am YeJiaWei");
activemq安裝運行及其在springboot中的queue和topic使用