深入理解activeMQ 消息通讯

从例子出发

Broker

public class BrokerMain {

	
	public static void main(String[] args) throws Exception {
		
		String brokerName="broker1";
		
		BrokerService broker=BrokerFactory.createBroker("broker:tcp://localhost:16117");
		brokerName="broker2";		
		broker.setBrokerName(brokerName);
//		broker.addNetworkConnector("static:tcp://localhost:16116");
		broker.start();
	}
}

Producer:

public class ProducerMain {
	
	public static void main(String[] args) throws JMSException {
		String queueName="myqueue";
		ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://localhost:16117");
		Connection connection=connectionFactory.createConnection();
		Session session=	connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		Destination dest=session.createQueue(queueName);
		MessageProducer producer=session.createProducer(dest);
		Message message=session.createTextMessage("produce a text message");
		producer.send(message);
	}

}
Consumer:

public class ConsumerMain {
	
	public static void main(String[] args) throws JMSException {
		String queueName="myqueue";
		ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://localhost:16117");
		Connection connection=connectionFactory.createConnection();
		Session session=	connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		Destination dest=session.createQueue(queueName);
		MessageConsumer consumer=session.createConsumer(dest);
		consumer.setMessageListener(new MessageListener(){

			@Override
			public void onMessage(Message message) {
				ActiveMQTextMessage text = (ActiveMQTextMessage) message;
				try {
					System.out.println(text.getText());
				} catch (JMSException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}});
		connection.start();
		
	}

}


通讯流程图:


通讯流程(broker中重要部件)



设计模式:

BrokerFactory中的抽象工厂模式:


broker责任链:

Transport责任链:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值