active mq 的安装和使用

1.下载最新的activeMQ压缩包,地址为http://activemq.apache.org/activemq-5152-release.html


2.解压压缩包,找到bin目录之下的win32/win64目录下的activemq.bat进行启动,也可点击InstallService.bat 进行服务方式启动启动成功后浏览器打开http://127.0.0.1:8161/admin 输入默认的账号admin密码admin即可,成功如图:


3.创建java项目引入activemq-all-5.15.2.jar(mq解压后第一级目录之下)

4.active mq 分为队列模式和订阅者模式以下我们以案例分别介绍

4.1之队列模式

第一步:创建生产者

public class jmsProducer {
	 //默认连接用户名
    private static final String url = "tcp://127.0.0.1:61616";
    //默认连接密码
    private static final String username = "admin";
    //默认连接地址
    private static final String password = "admin";
    //队列名称
    private static final String jmsName = "queue-test";
	public static void main(String[] args) throws JMSException {
		//1.创建连接工厂
		ConnectionFactory connectionFactory = (ConnectionFactory) new ActiveMQConnectionFactory(username, password, url);
		//2.得到连接
		Connection connection = connectionFactory.createConnection();
		//3.启动连接
		connection.start();
		//4。创建会话
		Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		//5.创建目标
		Destination destination  = session.createQueue(jmsName);
		//6.创建生产者
		MessageProducer producer = session.createProducer(destination);
		//发送10条消息
		for (int i = 0; i < 10; i++) {
			TextMessage textMessage = session.createTextMessage("消息:"+i);
			producer.send(textMessage);
			System.out.println("已发送"+textMessage.getText());
		}
		connection.close();
	}
}
右键运行完成之后进入浏览器查看如图成功


第二步创建消费者

public class jmsCustomer {
	 //默认连接用户名
    private static final String url = "tcp://127.0.0.1:61616";
    //默认连接密码
    private static final String username = "admin";
    //默认连接地址
    private static final String password = "admin";
    //队列名称
    private static final String jmsName = "queue-test";
	public static void main(String[] args) throws JMSException {
		//1.创建连接工厂
		ConnectionFactory connectionFactory = (ConnectionFactory) new ActiveMQConnectionFactory(username, password, url);
		//2.得到连接
		Connection connection = connectionFactory.createConnection();
		//3.启动连接
		connection.start();
		//4。创建会话
		Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		//5.创建目标
		Destination destination  = session.createQueue(jmsName);
		//创建消费者
		MessageConsumer customer = session.createConsumer(destination);
		customer.setMessageListener(new MessageListener() {
			
			@Override
			public void onMessage(Message message) {
				// TODO Auto-generated method stub
				TextMessage textMessage = (TextMessage) message;
				try {
					System.out.println("已接收:"+textMessage.getText());
				} catch (JMSException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
右键运行完成后进入浏览器查看消息信息如图成功


ps:如果我们同时开启两个消费者,当生产者发出消息后,两个消费者以平均分配的方式共享资源

4.2之订阅者模式

其实订阅者模式与队列模式,使用方法几乎相似,只要改变会话床建方式即可

//4。创建会话
		Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
ps: 使用订阅者模式必须先运行消费者进行消息的订阅,然后生产者发出的消息才能接收到的到

如果创建两个消费者,在订阅者模式之下,当生产者发出消息后,两个消费者均可收到所有消息

这也是队列模式和消费者模式的一个重要的区别。





猜你喜欢

转载自blog.csdn.net/qq_37642205/article/details/79074628
今日推荐