Windows环境的RabbitMQ之HelloWorld
来源:互联网 发布:拳皇2002出招优化补丁 编辑:程序博客网 时间:2024/05/17 03:01
RabbitMQ是一种应用程序对应用程序的通信方法,是bla...bla...bla...嗯,既然这么牛X,那就在win7环境先实验一下吧!
第一步:
不同于ActiveMQ,rabbitMQ是用Erlang编写的,所以需要先安装Erlang环境,我的版本是erl9.0,官网:http://www.erlang.org并用类似安装jkd的方式配置环境变量;
安装RabbitMQ,我的版本是rabbitmq_server-3.6.11,官网:http://www.rabbitmq.com/download.html同样类似安装jdk的方式配置Erlang环境;
但是在执行rabbitmq-server.bat的时候黑框闪了一下,报了Error,于是换一条路:
点击所有程序中:
输入rabbitmq-plugins enable rabbitmq_management
浏览器访问 http://localhost:15672 用户名密码都是guest
环境准备就绪
第二步:
新建java项目,导入amqp-client-3.6.1.jar;
消息生产者:
package com.cn.two;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;public class Producer {private final static String QUEUE_NAME = "HelloWorld";public static void main(String[] args) throws Exception {//1.创建连接工厂,并设置链接地址ConnectionFactory factory = new ConnectionFactory();factory.setHost("127.0.0.1");//2.创建连接Connection connection = factory.newConnection();//3.创建频道Channel channel = connection.createChannel();//4.队列声明,参数意义分别是 队列名称;是否持久化;是否独占queue(是否仅供此连接使用);不使用时是否自动删除;其他channel.queueDeclare(QUEUE_NAME, false, false, false, null);//5.创建消息String message = "";for(int i = 0; i < 5; i++){message = "hello " + i;System.out.println("message is " + message);//6.发布消息channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));}//7.关闭资源channel.close();connection.close();}}运行之后查看http://127.0.0.1:15672 发现已产生五条消息
第三步:
消息消费者:
package com.cn.two;import java.io.IOException;import com.rabbitmq.client.AMQP;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import com.rabbitmq.client.DefaultConsumer;import com.rabbitmq.client.Envelope;public class Consumer {private final static String QUEUE_NAME = "HelloWorld";public static void main(String[] args) throws Exception {//前四步不变://1.创建连接工厂,并设置链接地址ConnectionFactory factory = new ConnectionFactory();factory.setHost("127.0.0.1");//2.创建连接Connection connection = factory.newConnection();//3.创建频道Channel channel = connection.createChannel();//4.队列声明,参数意义分别是 队列名称;是否持久化;是否独占queue(是否仅供此连接使用);不使用时是否自动删除;其他channel.queueDeclare(QUEUE_NAME, false, false, false, null);//5.向DefaultConsumer传入一个频道,告诉服务器我们需要那个频道的消息,如果频道中有消息,就会执行回调函数handleDeliveryDefaultConsumer consumer = new DefaultConsumer(channel){public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException{String message = new String(body,"UTF-8");System.out.println("get message " + message);}};//6.自动回复队列应答,RabbitMQ中的消息确认机制channel.basicConsume(QUEUE_NAME, true, consumer);}}运行后控制台打印:
get message hello 0get message hello 1get message hello 2get message hello 3get message hello 4访问http://127.0.0.1:15672 发现消息已被消费:
完成试验后发现下载的rabbitmq里面有一个erlang文件,那么之前是不是可以不用单独下载erlang了?有待研究
本文参考:http://www.rabbitmq.com/tutorials/tutorial-one-java.html
阅读全文
1 0
- Windows环境的RabbitMQ之HelloWorld
- RabbitMQ(一) Windows下的 HelloWorld
- RabbitMQ windows环境的安装
- RabbitMQ 之HelloWorld
- 初学RabbitMQ之HelloWorld
- RabbitMq之Helloworld
- RabbitMq之HelloWorld
- Rabbitmq的helloworld
- RabbitMQ之入门HelloWorld(Java)
- RabbitMQ之入门HelloWorld(Erlang)
- Windows环境安装Rabbitmq
- RabbitMQ之Windows下的安装部署
- rabbitMQ HelloWorld
- RabbitMQ HelloWorld
- windows RabbitMQ 安装环境配置
- windows下rabbitmq环境搭建
- windows编程之helloworld
- Windows下的Eclipse环境搭建及Helloworld教程
- Android原生时间控件DatePicker——月份由英文转数字
- jquery获取checkbox 选中数量
- Java中static和final的区别
- HDU 1565 方格取数(1)(最大独立点集)
- 搜狐字符串abcde
- Windows环境的RabbitMQ之HelloWorld
- 关于微信分享
- [NOIP模拟](二)T1-操作
- Ubuntu用户和组管理
- 编程题——攀爬字符串
- Solr 6.0 学习(一)环境搭建
- Spring JDBC
- android 马赛克和高斯模糊代码文件
- 约束布局constraint-layout导入失败的解决方案