前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >rabbitmq使用案例_RabbitMq

rabbitmq使用案例_RabbitMq

作者头像
全栈程序员站长
发布2022-11-10 15:59:00
5010
发布2022-11-10 15:59:00
举报

大家好,又见面了,我是你们的朋友全栈君。

RabbitMQ使用实践

参考网站: http://blog.chinaunix.net/topic/surpershi/ http://blog.csdn.net/lwkcn/article/details/25086467 http://snoopyxdy.blog.163.com/blog/static/60117440201352615631930/

1、简介 MQ(Message Queue)消息队列,用于应用系统解耦、消息异步分发。 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。 其优点如下。 1)Reliability-可靠性高。 2)Flexible Routing-路由灵活。 3)Clustering-支持集群。 4)Federation-支持互联。 5)Tracing-便于追踪。 本文档是关于RabbitMQ的安装与使用实践。 实践环境:Window7 x64系统。

2、Erlang安装 RabbitMQ由ERLANG实现,故需要安装Erlang。 1)下载Erlang 下载官网:http://www.erlang.org/download.html。 实践安装版本:otp_win32_17.4.exe。 2)安装Erlang 运行Exe按照提示一路Next安装下来。 3)配置Erlang 本机安装目录:C:\Program Files (x86)\erl6.3。 环境变量Path中添加C:\Program Files (x86)\erl6.3\bin。

rabbitmq使用案例_RabbitMq
rabbitmq使用案例_RabbitMq

4)检测Erlang 命令行中输入erl命令可检测Erlang是否安装成功。

rabbitmq使用案例_RabbitMq
rabbitmq使用案例_RabbitMq

3、RabbitMQ安装 对应RabbitMQ的版本为V3.4.3。 1)下载RabbitMQ 对应官网: http://www.rabbitmq.com/download.html。 下载安装包:rabbitmq-server-3.4.3.exe。 2)安装RabbitMQ 运行Exe,一路Next安装完毕。 3)安装完成查看

rabbitmq使用案例_RabbitMq
rabbitmq使用案例_RabbitMq

4、RabbitMQ启动

1)启动管理插件 运行RabbitMQ Command Prompt(sbin dir)。 输入rabbitmq-plugins enable rabbitmq_management,启动管理插件。

rabbitmq使用案例_RabbitMq
rabbitmq使用案例_RabbitMq

2)启动管理服务 运行RabbitMQ Service – start。 3)登录管理界面 浏览器输入:http://localhost:15672/#/。

用户名:guest,密码guest。

rabbitmq使用案例_RabbitMq
rabbitmq使用案例_RabbitMq

5、消息发送代码 示例代码采用Java,对应IDE为Eclipse。 Java需要用到RabbitMQ的jar包。 jar包下载地址:http://www.rabbitmq.com/java-client.html。 对应版本与Rabbit Server一致V3.4.3。

发送代码见Send.java。

代码语言:javascript
复制
import java.io.IOException;
import com.rabbitmq.client.Channel;  
import com.rabbitmq.client.Connection;  
import com.rabbitmq.client.ConnectionFactory;  

public class Send {  
    private final static String QUEUE_NAME = "rabbit";
    
    public static void main(String[] args) throws IOException {  
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("127.0.0.1");
        factory.setPort(5672);
        factory.setUsername("guest");
        factory.setPassword("guest");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
        
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);  
        String message = "Hello Rabbit!";  
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());  
        System.out.println(" [x] Sent '" + message + "'");
        
        channel.close();  
        connection.close();  
    }  
}

运行结束结果。 打印出: [x] Sent ‘Hello Rabbit!’。

进入管理界面,可以看到已经创建了一个名叫rabbit的消息队列,,消息Ready标志为1。

rabbitmq使用案例_RabbitMq
rabbitmq使用案例_RabbitMq

6、消息接受代码 对应程序代码Recv.java。

代码语言:javascript
复制
import com.rabbitmq.client.Channel;  
import com.rabbitmq.client.Connection;  
import com.rabbitmq.client.ConnectionFactory;  
import com.rabbitmq.client.QueueingConsumer;  

public class Reqv {  
    private final static String QUEUE_NAME = "rabbit";
    
    public static void main(String[] argv) throws Exception {  
  
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        factory.setPort(5672);
        factory.setUsername("guest");
        factory.setPassword("guest");
        Connection connection = factory.newConnection();  
        Channel channel = connection.createChannel();
        
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        QueueingConsumer consumer = new QueueingConsumer(channel);  
        channel.basicConsume(QUEUE_NAME, true, consumer);
        
        while (true) {  
            QueueingConsumer.Delivery delivery = consumer.nextDelivery();  
            String message = new String(delivery.getBody());  
            System.out.println(" [x] Received '" + message + "'");  
        }  
    }
}

运行结果,打印如下。 [x] Received ‘Hello Rabbit!’ 进入管理端界面查看,消息Ready标志为0。

7、总结 通过实践,感觉RabbitMQ简单易用,支持消息的异步发送,可以解耦两个强关联的应用系统。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年9月27日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档