ActiveMQ学习笔记(5)----Broker的启动方式 ActiveMQ学习笔记(5)----Broker的启动方式

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运用

  这里主要将ActiveMQ Broker作为独立的消息服务器来构建JAVA应用。

  ActiveMQ也支持在vm中通信基于嵌入式的broker,能够无缝的集成其他的java应用。

1. 嵌入式Borker启动

  BrokerService启动Broker,示例如下:

 
package com.wangx.activemq.broker;


import org.apache.activemq.broker.BrokerFactory;
import org.apache.activemq.broker.BrokerService; import java.net.URI; public class InnerBroker { public static void main(String[] args) throws Exception { //基于嵌入式的Broker启动broker BrokerService broker = new BrokerService(); broker.setUseJmx(true); //指定访问地址 broker.addConnector("tcp://localhost:8888"); broker.start(); } }
 

  使用前面的生产者和消费者,在初始化连接工厂时将链接改为tcp://localhost:8888,可以成功的发送和接收消息。

基于BrokerFactory启动broker,示例如下:

 
package com.wangx.activemq.broker;


import org.apache.activemq.broker.BrokerFactory;
import org.apache.activemq.broker.BrokerService; import java.net.URI; public class InnerBroker { public static void main(String[] args) throws Exception { //properties.properties 放到classpath下 String URI = "properties:properties.properties"; BrokerService brokerService = BrokerFactory.createBroker(new URI(URI)); brokerService.addConnector("tcp://localhost:8888"); brokerService.start(); } }
 
properties.properties文件如下:
useJms=true
persistent=false
# 随意设置的broker的name
bokerName=Cheese

  使用前面的生产者和消费者,在初始化连接工厂时将链接改为tcp://localhost:8888,可以成功的发送和接收消息。

使用Spring来集成Broker

  首先引入Spring的核心以来。pom文件如下:

 <dependency>
      <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.1.2.RELEASE</version> </dependency>

  Spring配置文件如下applicationContext.xml:

 
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd "> <!--使用最简单的Spring集成Broker,复杂的会有一些权限控制,这里先不演示 由于指定了init-method="start" destroy-method="stop" 所以这里的只需要读取spring的配置文件,将其装载到bean容器中, 启动和关闭broker都交由spring的生命周期来管理,使用 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 启动,即可开启Broker,不需要任何多余的代码 --> <bean id="broker" class="org.apache.activemq.broker.BrokerService" init-method="start" destroy-method="stop"> <property name="brokerName" value="myBroker"/> <property name="persistent" value="false"/> <property name="transportConnectorURIs"> <list> <value>tcp://localhost:8888</value> </list> </property> </bean> </beans>
 
使用最简单的Spring集成Broker,复杂的会有一些权限控制,这里先不演示,由于指定了init-method="start" destroy-method="stop" 所以这里的只需要读取spring的配置文件,将其装载到bean容器中,启动和关闭broker都交由spring的生命周期来管理,
使用 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");启动,即可开启Broker,不需要任何多余的代码。启动类如下:
 
package com.wangx.activemq.spring;

import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
import org.springframework.context.ApplicationContext; public class SpringBroker { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); } }
 

  使用前面的生产者和消费者,在初始化连接工厂时将链接改为tcp://localhost:8888,可以成功的发送和接收消息。

  还可以配置BrokerFactoryBean读取activemq.xml文件方式来集成Spring

  bean配置如下:

<bean id="broker" class="org.apache.activemq.xbean.BrokerFactoryBean"> <property name="config" value="activema.xml"/> <property name="start" value="true"/> </bean>

2. ActiveMQ的启动

  1. 可以通过在应用程序中以编码的方式启动broker,例如broker.start();

    如果需要启动多个Broker,那么需要为每个broker设置不同的名字和host:port(地址)

    例如:

 
package com.wangx.activemq.broker;


import org.apache.activemq.broker.BrokerFactory;
import org.apache.activemq.broker.BrokerService; import java.net.URI; public class InnerBroker { public static void main(String[] args) throws Exception { //基于嵌入式的Broker启动broker BrokerService broker = new BrokerService(); broker.setUseJmx(true); broker.setBrokerName("one"); //指定访问地址 broker.addConnector("tcp://localhost:8888"); broker.start(); } }
 

2. 通过Spring启动,前面都已经演示过了。

原文 ActiveMQ学习笔记(5)----Broker的启动方式

猜你喜欢

转载自www.cnblogs.com/xiaoshen666/p/10854681.html