1、下载安装RabbitMQ

  windows下

  先 下载Erlang 64位 其它去这里下载 http://www.erlang.org/downloads

  然后 下载RabbitMQ  官网 http://www.rabbitmq.com/install-windows.html

  rabbitMq jar包  下载地址

  maven依赖

<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.6.5</version>
</dependency>

 安装完成后运行 rabbitMq安装目录下sbin/rabbitmq-server.bat  或者 在cmd下:进入sbin目录,运行rabbitmq-server start

2.Java入门实例

发送端:Producer.java 连接到RabbitMQ(此时服务需要启动),发送一条数据,然后退出。

package top.lilixin.maintest;

import java.io.IOException;
import java.util.concurrent.TimeoutException; import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory; /**
* @Project: rabbitMq
* @Author: lilixin
* @Date: 2016年8月17日
* @Copyright: 2016 www.lilixin.top Inc. All rights reserved.
*/
public class Producer {
private static final String QUEUE_NAME = "hello world"; public static void main(String[] args) throws IOException, TimeoutException {
//创建到rabbitmq的连接
ConnectionFactory factory = new ConnectionFactory();
//设置rabbitmq所在主机ip或地址
factory.setHost("localhost");
//创建一个连接
Connection conn = factory.newConnection();
//创建一个频道
Channel channel = conn.createChannel();
//指定一个队列
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
//发送的消息
String msg = "this is my first rabbitmq msg";
//往队列里发一条消息
channel.basicPublish("", QUEUE_NAME, null, msg.getBytes());
System.out.println(" [x] Sent '" + msg + "'");
//关闭频道和连接
channel.close();
conn.close();
}
}

值得注意的是队列只会在它不存在的时候创建,多次声明并不会重复创建。信息的内容是字节数组,也就意味着你可以传递任何数据。

接收端:Receiver.java 不断等待服务器推送消息,然后在控制台输出。

package top.lilixin.maintest;

import java.io.IOException;
import java.util.concurrent.TimeoutException; import com.rabbitmq.client.AMQP.Queue.DeclareOk;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.ConsumerCancelledException;
import com.rabbitmq.client.QueueingConsumer;
import com.rabbitmq.client.QueueingConsumer.Delivery;
import com.rabbitmq.client.ShutdownSignalException; /**
* @Project: rabbitMq
* @Author: lilixin
* @Date: 2016年8月17日
* @Copyright: 2016 www.lilixin.top Inc. All rights reserved.
*/
public class Receiver { private static final String QUEUE_NAME = "hello world"; public static void main(String[] args) throws IOException, TimeoutException, ShutdownSignalException,
ConsumerCancelledException, InterruptedException {
// 创建连接
ConnectionFactory factory = new ConnectionFactory();
// 设置mq的host或者 ip
factory.setHost("localhost");
// 创建一个连接
Connection conn = factory.newConnection();
// 创建一个channel
Channel channel = conn.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) {
// nextDelivery是一个阻塞方法(内部实现其实是阻塞队列的take方法)
Delivery delivery = consumer.nextDelivery();
String msg = new String(delivery.getBody());
System.out.println("[x] Received '" + msg + "'");
} }
}

分别运行Send.java和Recv.java 顺序无所谓。前提RabbitMQ服务开启。

  

RabbitMQ入门教程的更多相关文章

  1. RabbitMQ入门教程(十七):消息队列的应用场景和常见的消息队列之间的比较

    原文:RabbitMQ入门教程(十七):消息队列的应用场景和常见的消息队列之间的比较 分享一个朋友的人工智能教程.比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 这是网上的一篇教程写的很好,不知原作 ...

  2. RabbitMQ入门教程(十六):RabbitMQ与Spring集成

    原文:RabbitMQ入门教程(十六):RabbitMQ与Spring集成 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https: ...

  3. RabbitMQ入门教程(十五):普通集群和镜像集群

    原文:RabbitMQ入门教程(十五):普通集群和镜像集群 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.c ...

  4. RabbitMQ入门教程(十四):RabbitMQ单机集群搭建

    原文:RabbitMQ入门教程(十四):RabbitMQ单机集群搭建 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://b ...

  5. RabbitMQ入门教程(十三):虚拟主机vhost与权限管理

    原文:RabbitMQ入门教程(十三):虚拟主机vhost与权限管理 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://b ...

  6. RabbitMQ入门教程(十二):消息确认Ack

    原文:RabbitMQ入门教程(十二):消息确认Ack 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csd ...

  7. RabbitMQ入门教程(十一):消息属性Properties

    原文:RabbitMQ入门教程(十一):消息属性Properties 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://b ...

  8. RabbitMQ入门教程(十):队列声明queueDeclare

    原文:RabbitMQ入门教程(十):队列声明queueDeclare 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https:// ...

  9. RabbitMQ入门教程(九):首部交换机Headers

    原文:RabbitMQ入门教程(九):首部交换机Headers 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog ...

  10. RabbitMQ入门教程(八):远程过程调用RPC

    原文:RabbitMQ入门教程(八):远程过程调用RPC 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.cs ...

随机推荐

  1. java初级开发程序员(第三单元)

    1.if基本选择结构: 语法: if(条件){     //程序执行时,先判断条件.当结果为true(真)时,程序先执行大括号的代码块,再执行if结构(即{}部分)后面的代码.当结果为false(假) ...

  2. redux 初识

    前言 Redux 试图让 state 的变化变得可预测 react/react-native 将组件的更新交给了状态机(state),想要更新页面活着页面的某个组件就必须得通过改变state的方式.页 ...

  3. 在 Windows 上测试 Redis Cluster的集群填坑笔记

    redis 集群实现的原理请参考http://www.tuicool.com/articles/VvIZje       集群环境至少需要3个节点.推荐使用6个节点配置,即3个主节点,3个从节点. 新 ...

  4. Python基础之数据类型

    Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...

  5. 用phpcms如何将静态页面制作成企业网站(下)

    上篇讲到了子页部分 这样的 有分页选择 列表项的代码部分 最后输出变量pages就可以了 看一下运行的效果 点击下一页 再来改一下子页显示的样式 点击人才将会出来的一个子页面 路径要统一 再来更改后台 ...

  6. 裸机(Bare Metal)安装CoreOS

    本文以 1235.9.0-stable 为例,在WMWare中进行安装. 1.获取安装资源 https://coreos.com/releases/ 通过"Browse Images&quo ...

  7. maven springmvc启动问题

    1.环境 SpringMVC + Maven + mybatis 2.报错提示 严重: Error configuring application listener of class org.spri ...

  8. LeetCode 笔记总结

    前言 之前把一些LeetCode题目的思路写在了本子上,现在把这些全都放到博客上,以后翻阅比较方便. 题目 99.Recover Binary Search Tree 题意 Two elements ...

  9. 类似于qq空间类型的评论和回复

    最近学习thinkphp,做了一个博客系统,其中感觉实现一个类似于qq空间的评论和回复功能比较复杂,所以把这次的经历记录下来,与大家共勉,具体的方法就不说了,在这里分享一下思路. 目标就是这种,关键是 ...

  10. C#:求100到200之前所有的质数和