引言
在实际项目开发过程中,对于ActiveMQ的启动更多是独立进程进行启动,但也不排除需要嵌入到程序中与业务系统共进程的方式一起使用,因此在本章我们主要介绍Broker的几种启动方式
启动方式介绍
常规启动方式介绍
- Broker: 即就是一个ActiveMQ服务端程序
- 常规的命令启动方式:
- activemq start 使用默认的activemq.xml来启动
- activemq start xbean:file:../conf/activemq-2.xml 使用指定的配置文件来启动
- 如果不指定file(也就是xbean:activemq-2.xml),那么对应的xml必须在classpath下面
- 用ActiveMQ来构建Java应用 这里主要是将用ActiveMQ Broker作为独立的消息服务器来构建Java应用。ActiveMQ也支持在vm中通讯基于嵌入式的Broker,能够无缝的集成其它Java应用
在Java程序中嵌入ActiveMQ
硬编码启动
启动方式1(Broker Service启动)
BrokerService brokerService = new BrokerService();
brokerService.setUseJmx(true);
brokerService.addConnector("tcp://127.0.0.1:61616");
brokerService.start();
System.out.println("Broker 启动成功!");
启动方式2(BrokerFactory 启动)
String uri = "properties:activemq.properties";
BrokerService brokerService =BrokerFactory.createBroker(new URI(uri));
brokerService.addConnector("tcp://127.0.0.1:61616");
brokerService.start();
System.out.println("Broker 启动成功!");
activemq.properties
userJms=true
persistent=false
brokerName=MyBroker
基于Spring启动
集成Spring启动方式1
通过Spring以BrokerService启动
<bean id="activemqBroker" 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:61616</value>
</list>
</property>
</bean>
Java代码
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("application-context.xml");
System.out.println("Broker is startd!");
}
集成Spring启动方式2
通过Spring以BrokerFactoryBean启动Broker 在Bean文件引入工厂类
<bean id="activemqBrokderFactory" class="org.apache.activemq.xbean.BrokerFactoryBean">
<property name="config" value="activemq-properties.xml"/>
<property name="start" value="true"/>
</bean>
activemq-properties.xml主要内容如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:amq="http://activemq.apache.org/schema/core"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
<broker useJmx="false" persistent="false"
xmlns="http://activemq.apache.org/schema/core">
<transportConnectors>
<transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>
</broker>
</beans>
集成Spring启动方式3
以amq:broker标签配置启动
<amq:broker brokerName="MyBroker" start="true" persistent="false">
<amq:transportConnectors>
<amq:transportConnector uri="tcp://localhost:61616"/>
</amq:transportConnectors>
</amq:broker>
总结:
本文主要介绍了ActiveMQ启动的几种方式,1.独立进程启动与嵌入到应用程序中启动,其中对于嵌入到应用程序中启动分别介绍了硬编码启动与Spring框架集成启动两种方式,无论是哪种都有两种,制定BrokerSerivce和使用Factory进行启动,原理都差不多,看自己需求适当采用即可