rabbitMQ-simple 简单模式

2019-08-01 10:21:26 浏览数 (1)

1 导入依赖

代码语言:javascript复制
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.shi.rabbitmq</groupId>
  <artifactId>rabbitmq-01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  
  <dependencies>
		<!-- RabbitMQ的客户端 -->
		<dependency>
		    <groupId>com.rabbitmq</groupId>
		    <artifactId>amqp-client</artifactId>
		    <version>3.4.1</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.7</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.3.2</version>
		</dependency>
		
		<dependency>
	        <groupId>org.springframework.amqp</groupId>
	        <artifactId>spring-rabbit</artifactId>
	        <version>1.4.0.RELEASE</version>
	    </dependency>
	    
	    <dependency>
		    <groupId>junit</groupId>
		    <artifactId>junit</artifactId>
		    <version>4.12</version>
		    <scope>test</scope>
		</dependency>
	</dependencies>
  <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

2 工具类

代码语言:javascript复制
package com.shi.util;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

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

/**
 * 创建工厂类--rabbitMq
 * @author SHF
 * @version 创建时间:2018年7月3日  上午9:49:57
 */
public class RabbitMqUtils {
	
	private static String host = "127.0.0.1";
	private static Integer port = 5672;
	private static String userName = "shiye";
	private static String pwd = "shiye";
	private static String vhost = "/test";
	
	public static Connection getConnection() throws IOException, TimeoutException{
		
		//1 定义链接工厂
		ConnectionFactory factory = new ConnectionFactory();
		
		//2 设置服务器地址,端口,账户信息,用户名,密码,vhost
		factory.setHost(host);
		factory.setPort(port);
		factory.setVirtualHost(vhost);
		factory.setUsername(userName);
		factory.setPassword(pwd);
		
		//3 通过工厂获取链接
		Connection connection = factory.newConnection();
		return connection;
	}

}

3 生产者

代码语言:javascript复制
/**
	 * 生产者
	 * @author SHF
	 * @version 创建时间:2018年7月3日  上午10:08:57
	 * @throws TimeoutException 
	 * @throws IOException 
	 */
	@Test
	public void producer() throws IOException, TimeoutException {
		
		//1  获取链接以及mq通道
		Connection connection = RabbitMqUtils.getConnection();
		Channel channel = connection.createChannel();
		
		//2 申明队列
		DeclareOk queueOK = channel.queueDeclare(QUEUE_NAME, false, false, false, null);
		
		//3 添加消息内容
		String message = "Hello World; 施爷";
		channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
		System.out.println( "sent: '"   message   "'");
		
		//关闭通道和连接
		channel.close();
		connection.close();
	}

4 消费者

代码语言:javascript复制
/**
	 * 消费者
	 * @author SHF
	 * @version 创建时间:2018年7月3日  上午11:03:25
	 *  @throws Exception
	 */
	@Test
	public void Consum() throws Exception{
		//1 获取链接及mq通道,
		Connection connection = RabbitMqUtils.getConnection();
		Channel channel = connection.createChannel();
		
		//2 申明队列(如果存在就不创建)
		channel.queueDeclare(QUEUE_NAME, false, false, false, null);
		
		//3 定义队列的消费者
		QueueingConsumer cunusumer =  new QueueingConsumer(channel);
		//4 监听队列
		channel.basicConsume(QUEUE_NAME, true,cunusumer);
		
		//5 获取消息
		while(true) {
			Delivery delivery = cunusumer.nextDelivery();
			String message  = new String(delivery.getBody());
			System.out.println(" received: "   message);
		}
	}

0 人点赞