MQ 入门【3】--消息的持久化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012045045/article/details/80926576

1.连接

package com.cmbc.utils;

import java.io.IOException;

import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class ConnectionUtils {

	public static Connection getConnetions() throws IOException {

		ConnectionFactory factory = new ConnectionFactory();

		factory.setHost("127.0.0.1");
		factory.setPort(5672);
		factory.setVirtualHost("/vhost_zq");

		factory.setUsername("develop");
		factory.setPassword("123456");
		return factory.newConnection();

	}

}

2.生产者

package com.cmbc.producer;

import java.io.IOException;

import com.cmbc.utils.ConnectionUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

public class Send {

	private static final String QUENE_NAME = "test_simple_quene";
	/*
	 * 一个生产者对应多个消费者
	 */

	public static void main(String[] args) throws IOException {

		Connection con = ConnectionUtils.getConnetions();
		Channel channel = con.createChannel();
		
		/**
		 * 如果我的mq挂掉的话,我的消息自然就会丢失。那么就需要将消息持久化,durable=true即设置消息的持久化
		 */
		//定义消息的持久化
		boolean durable=true;
		channel.queueDeclare(QUENE_NAME, durable, false, false, null);

		/**
		 * 每个消费者发送确认消息之前,消息队列不发送下一个消息到消费者,一次只处理一个消息
		 * 限制 发送给同一个消费者不超过一条消息
		 */
		int prefetchCount=1;
		channel.basicQos(prefetchCount);
		
		for (int i = 0; i < 50; i++) {

			String msg = "hello world!"+i;

			channel.basicPublish("", QUENE_NAME, null, msg.getBytes());
			System.out.println("send:" + msg);
		}
		
		channel.close();
		con.close();

	}

}

猜你喜欢

转载自blog.csdn.net/u012045045/article/details/80926576
今日推荐