ActiveMQ(四)——四、用ActiveMQ构建应用
一、多种启动Broker的方法
员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。成都创新互联公司坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供网站设计制作、成都网站设计、微信公众号开发、电商网站开发,微信小程序,软件按需定制设计等一站式互联网企业服务。
- broker:相当于一个ActiveMQ服务器实例
- 命令行启动参数示例如下:
1:activemq start:使用默认的activemq.xml来启动
2:activemq start xbean:file:../conf/activemq-2.xml:使用指定的配置文件来启动
3:如果不指定file,也就是xbean:activemq-2.xml,那么必须在classpath下面 - 如果需要启动多个broker,需要为broker设置一个名字
broker.setName(“name2”);
二、单独应用的开发
- 用ActiveMQ来构建Java应用
主要将ActiveMQ Broker作为独立的消息服务器米构建JAVA应用。ActiveMQ也支持在vm中通信基于嵌入式的broker,能够无缝的集成其它java应用 - 嵌入式Broker启动
//1:Broker Service启动broker,示例如下 BrokerService broker = new BrokerService(); broker.setUseJmx(true); broker.addConnector("tcp://localhost:61616"); broker.start(); //2:BrokerFactory 启动broker,示例如下: String uri = "properties:broker.properties"; BrokerService broker1 = BrokerFactory.createBroker(new URI(uri)); broker1.addConnector("tcp://localhost:61616"); broker1.start(); //3:broker.properties的内容如下: useJms=true persistent=false brokerName=Cheese
三、结合spring boot的开发
参考:https://blog.csdn.net/liuchuanhong1/article/details/54603546
配置pom.xml
org.springframework.boot spring-boot-starter-activemq org.apache.activemq activemq-pool - 配置文件
spring.activemq.broker-url=tcp://localhost:61616 spring.activemq.in-memory=true #如果此处设置为true,需要加如下的依赖包,否则会自动配置失败,报JmsMessagingTemplate注入失败 spring.activemq.pool.enabled=false
生产者
@Service public class Producer { @Autowired // 也可以注入JmsTemplate,JmsMessagingTemplate对JmsTemplate进行了封装 private JmsMessagingTemplate jmsTemplate; // 发送消息,destination是发送到的队列,message是待发送的消息 public void sendMessage(Destination destination, final String message){ jmsTemplate.convertAndSend(destination, message); } }
- 消费者
@Component public class Consumer { 使用JmsListener配置消费者监听的队列,其中text是接收到的消息 @JmsListener(destination = "springboot-activemq") public void receiveQueue(String text) { System.out.println("Consumer收到的报文为:"+text); } }
测试类
@RunWith(SpringRunner.class) @SpringBootTest public class SpringBootJmsApplicationTests { @Autowired private Producer producer; @Test public void contextLoads() { Destination destination = new ActiveMQQueue("springboot-activemq"); for (int i = 0; i < 10; i++) { producer.sendMessage(destination,"this message is " + i); } } }
- 测试结果
分享标题:ActiveMQ(四)——四、用ActiveMQ构建应用
文章URL:http://ybzwz.com/article/gjgjje.html