Broker:相当于一个ActiveMQ服务器实例
命令行启动参数实例:
1. ./activemq start:使用默认的activemq.xml来启动
2. ./activemq start xbean:file:../conf/activemq-2.xml 使用指定的配置文件来启动
3.如果不指定file,也就是xbean:activemq-2.xml,那么xml必须在classpath下面
用ActiveMQ来构建Java应用
这里主要讲用ActiveMQ Broker作为独立的消息服务器来构建Java应用。ActiveMQ也支持在vm中通信基于嵌入式的Broker,能够无缝的集成其它Java应用。
嵌入式Broker启动
1.Broker service启动broker
import org.apache.activemq.broker.BrokerService;
public class InnerBroker {
public static void main(String[] args) throws Exception {
BrokerService broker = new BrokerService();
broker.setUseJmx(true);
broker.addConnector("tcp://localhost:61616");
broker.start();
}
}
2.BrokerFactory启动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 {
// BrokerService broker = new BrokerService();
// broker.setUseJmx(true);
// broker.addConnector("tcp://localhost:61616");
// broker.start();
String uri = "properties:broker.properties";
BrokerService broker1 = BrokerFactory.createBroker(new URI(uri));
broker1.addConnector("tcp://localhost:61616");
broker1.start();
}
}
broker.properties的内容
useJmx=true
persistent=false
brokerName=Cheese
3.利用spring集成broker
applicationContext.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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">
<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:61616</value>
</list>
</property>
</bean>
</beans>
启动文件
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class InnerBroker {
public static void main(String[] args) throws Exception {
// BrokerService broker = new BrokerService();
// broker.setUseJmx(true);
// broker.addConnector("tcp://localhost:61616");
// broker.start();
// String uri = "properties:broker.properties";
// BrokerService broker1 = BrokerFactory.createBroker(new URI(uri));
// broker1.addConnector("tcp://localhost:61616");
// broker1.start();
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
}
}
只要加载一下spring的配置文件,内嵌的broker就启动了。
ActiveMQ的启动:
1.可以通过在应用程序中以编码的方式启动broker,例如:borker.start();
如果需要启动多个broker,那么需要为broker设置一个名字。例如:
BrokerService broker = new BrokerService();
broker.setName("fred");
broker.addConnector("tcp://localhost:61616");
broker.start();
2.还可以通过spring来启动。