java rabbitmq MessageQueue 使用第一章

一..环境搭建
运行message queue  client 的 java代码需要3个步骤
1..装erlang环境
2..erlang环境为了rabbitmq 的server 安装做准备
3..安装server后, 写java 代码
message queue  官网  下载jar 包, 源码

二..启动MQ server
将以上步骤做好后,启动rabbitmq server,启动方法在代码中查看

三..原理介绍
MQ全称为Message Queue, 消息队列(MQ)是一种 应用程序对应用程序的通信方法, 即MQ 用于进程通信
MQ client  的java API, 底层基于java 的socket 通信


发送端代码:
package MessageQueue;

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

/**
 * 每次运行mq client前, 要启动mq server,
 * 路径: C:\r 软件可执行\rabbitmq_server\RabbitMQ Server\rabbitmq_server-3.3.4\sbin
 * 运行     rabbitmq-server.bat start
 * @author jalo li
 *
 */
public class Send {
    
	private final static String QUEUE_NAME = "hello";

	public static void main(String[] argv) throws Exception {
                
	    ConnectionFactory factory = new ConnectionFactory();
	    factory.setHost("localhost");
	    Connection connection = factory.newConnection();
	    Channel channel = connection.createChannel();
	
	    channel.queueDeclare(QUEUE_NAME, false, false, false, null);
	    String message = "Hello World!";
	    channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
	    System.out.println(" [x] Sent '" + message + "'");
	    
	    channel.close();
	    connection.close();
	}
}



接收端代码:
package MessageQueue;

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

public class Recv {

	    private final static String QUEUE_NAME = "hello";

	    public static void main(String[] argv) throws Exception {

		    ConnectionFactory factory = new ConnectionFactory();
		    factory.setHost("localhost");
		    Connection connection = factory.newConnection();
		    Channel channel = connection.createChannel();
	
		    channel.queueDeclare(QUEUE_NAME, false, false, false, null);
		    System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
		    
		    QueueingConsumer consumer = new QueueingConsumer(channel);
		    channel.basicConsume(QUEUE_NAME, true, consumer);
		    
		    while (true) {
		    	QueueingConsumer.Delivery delivery = consumer.nextDelivery();//这个是阻塞方法,发送端publish一下,这里就能拿到一个delivery
		        String message = new String(delivery.getBody());
		        System.out.println(" [x] Received '" + message + "'");
		    }
	    }
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值