您的位置:首页 > Web前端

RabbitMQ 初探/安装 Fedora

2010-11-30 17:51 253 查看
为了适应公司产品要求语言无关性的详细传递需求,今天对RabbitMQ进行了初步了解。

首先来看下RabbitMQ在 fedora12 下面的安装过程,因为RabbitMQ是用Erlang写的,所有需要安装Erlang的语言环境。
官方给出的EPEL(Extra Packages for Enterprise Linux ),在fedora的添加/删除程序中搜索 Erlang,勾上Runtime Environment即系统会进行package依赖检查,等待下载安装......
EPEL详见:http://fedoraproject.org/wiki/EPEL

安装RabbitMQ Server
下载RPM安装包:http://www.rabbitmq.com/server.html
rpm -ivh XXXXX.rpm
其实RabbitMQ Server还有许多配置选项,我们这里就不配置了

运行RabbitMQ Server
/sbin/service rabbitmq-server start,如果需要把进程变成守护进程,运行:chkconfig rabbitmq-server on,rabbitmq的默认端口是:5672
检测server是否已经启动 ps -ef|grep rabbmit
官方的安装说明:http://www.rabbitmq.com/install.html#rpm

HelloWorld
发送端
package com.vixtel;

import java.io.IOException;

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

public class Send {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			String queueName = "hello";
			Connection conn = new ConnectionFactory().newConnection();
			Channel channel = conn.createChannel();
			
			channel.queueDeclare(queueName, false, false, false, null);
			
			channel.basicPublish("", queueName, null, "Hello World".getBytes());
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

接收端
package com.vixtel;

import java.io.IOException;

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

public class Receive {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			String queueName = "hello";
			Connection conn = new ConnectionFactory().newConnection();
			Channel channel = conn.createChannel();
			
			channel.queueDeclare(queueName, false, false, false, null);
			
			QueueingConsumer consumer = new QueueingConsumer(channel);
			channel.basicConsume(queueName, true, consumer);
			
			while(true) {
				try {
					QueueingConsumer.Delivery delivery = consumer.nextDelivery();
					System.out.println(new String(delivery.getBody()));
				} catch (ShutdownSignalException e) {
					e.printStackTrace();
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: