(3) ActiveMQ -- Cluster
修改$activemq_dir$/conf/activemq.xml
1) <broker brokerName="pure_master" …
2) <kahaDB directory="${activemq.base}/data/kahadb_pure_master "/>
3) <transportConnector name="openwire" uri="tcp://MasterIP:61616"/>
1) <broker brokerName="pure_slave" masterConnectorURI="tcp://MasterIP:61616"
shutdownOnMasterFailure="false" …
2) <kahaDB directory="${activemq.base}/data/kahadb_pure_slave "/>
3) <transportConnector name="openwire" uri="tcp://SlaveIP:61617"/>


package com.chbai.cluster;import java.util.Scanner;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageProducer;import javax.jms.Queue;import javax.jms.Session;import org.apache.activemq.ActiveMQConnectionFactory;import org.apache.activemq.command.ActiveMQQueue;public class Sender {/** * @param args */public static void main(String[] args) { ConnectionFactory cf = new ActiveMQConnectionFactory("failover:(tcp://MasterIP:61616,tcp://SlaveIP:61617)"); Connection conn = null;try {conn = cf.createConnection(); conn.start(); Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue qq = new ActiveMQQueue("qq1"); MessageProducer prod = sess.createProducer(qq); Message msg = null; Scanner scan = new Scanner(System.in); String str = scan.next(); while(true) { msg = sess.createTextMessage(str); prod.send(msg); if(str.equals("exit")) { break; } str = scan.next(); } conn.close();} catch (JMSException e) {e.printStackTrace();}}}