RabbitMQ安装与简单使用

这篇具有很好参考价值的文章主要介绍了RabbitMQ安装与简单使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装

下载资源

可以访问官网查看下载信息rabbitmq官网
RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java
选择合适的版本,注意:rabbitmq需要下载一个Erlang才能使用
我自己是在一下两个连接中下载的
rabbitmq 3.8.8
erlang 21.3.8.15
需要下载其他版本的同学注意erlang版本是否匹配,可以访问该链接查询匹配信息版本匹配信息
RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

安装以及启动rabbitmq

  1. 对erlang进行安装
    rpm -ivh erlang-21.3.8.15-1.el7.x86_64.rpm
    

    RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

  2. 下载以下插件
    yum install socat -y
    

    RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

  3. 安装rabbitmq
    rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
    

    RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

  4. 启动程序
    /sbin/service rabbitmq-server start
    

    RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

  5. 暂停程序以及查看状态
    /sbin/service rabbitmq-server stop
    /sbin/service rabbitmq-server status
    

    RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

访问mq

访问web界面

程序启动成功以后,可以下载一个插件,用于访问web界面

rabbitmq-plugins enable rabbitmq_management

RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java
注意:下载插件是需要先关闭程序再下载

访问如下地址

运行有mq的服务器的地址:15672

访问成功界面如下:
RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

用户管理

使用内置用户登录时(用户名:guest 密码:guest)无法登录。
原因:该用户没用权限。
解决方法:

  1. 修改该用户权限
  2. 创建一个新用户,并赋予权限
    RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java
    下面讲解如何创建用户,并赋权
  • 获取用户信息
    rabbitmqctl list_users
    

    RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

  • 创建用户,并设置密码
    rabbitmqctl add_user admin root
    

    RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

  • 分配角色
    rabbitmqctl set_user_tags admin administrator
    

    RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

  • 赋予权限
    rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
    

    RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java

成功登录后,界面如下:
RabbitMQ安装与简单使用,消息队列的学习与运用,rabbitmq,java文章来源地址https://www.toymoban.com/news/detail-728023.html

简单使用

  1. 创建一个maven项目,并导入以下依赖:
    <!--        rabbitmq依赖客户端-->
            <dependency>
                <groupId>com.rabbitmq</groupId>
                <artifactId>amqp-client</artifactId>
                <version>5.8.0</version>
            </dependency>
    
    <!--        操作文件流的一个依赖-->
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.6</version>
            </dependency>
    
  2. 编写生产者代码:
    public class Producer {
    
        //队列名称
        public static final String QUEUE_NAME = "hello";
    
        //发消息
        public static void main(String[] args) throws Exception{
            //创建工厂
            ConnectionFactory factory = new ConnectionFactory();
            //工厂IP 连接RabbitMQ的队列
            factory.setHost("192.168.221.128");
            //用户名
            factory.setUsername("admin");
            //密码
            factory.setPassword("root");
    
            //创建连接
            Connection connection = factory.newConnection();
            //获取信道
            Channel channel = connection.createChannel();
            /**
             * 生成一个队列
             * 1. 队列名称
             * 2. 队列里面的消息是否持久化(磁盘),默认情况下消息存储在内存中
             * 3. 该队列是否只供一个消费者进行消费 是否进行消费共享,true:可以多个消费者    false:只能一个消费者使用
             * 4. 是否自动删除 最后一个消费者断开连接以后 给队列是否自动删除 true自动删除 false不自动删除
             * 5. 其他参数
             */
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
    
            //发消息
            String massage = "hello world";
    
            /**
             *  发送一个消息
             *  1. 发送到哪个交换机
             *  2. 路由的Key值是哪个 本次是队列的名称
             *  3. 其它参数信息
             *  4. 发送消息的消息体
             */
            channel.basicPublish("", QUEUE_NAME, null, massage.getBytes());
            System.out.println("消息发送完毕");
        }
    }
    
  3. 编写消费者代码
    public class Consumer {
    
        //队列名称
        public static final String QUEUE_NAME = "hello";
    
        //接收消息
        public static void main(String[] args) throws Exception{
            //创建连接工厂
            ConnectionFactory factory = new ConnectionFactory();
            //工厂IP 连接RabbitMQ的队列
            factory.setHost("192.168.221.128");
            //用户名
            factory.setUsername("admin");
            //密码
            factory.setPassword("root");
    
            Connection connection = factory.newConnection();
    
            Channel channel = connection.createChannel();
    
            //回调 接收消息
            DeliverCallback deliverCallback = (consumerTag, message) -> {
                System.out.println(new String(message.getBody()));
            };
    
            //回调 取消消息
            CancelCallback cancelCallback = consumerTag -> {
                System.out.println("消息消费被中断");
            };
    
            /**
             * 消费者 消费信息
             * 1. 消费哪个队列
             * 2. 消费成功以后是否要自动应答 true代表自动应答 false代表手动应答
             * 3. 消费者未成功消费的回调
             * 4. 消费者取消消费的回调
             */
            channel.basicConsume(QUEUE_NAME, true, deliverCallback, cancelCallback);
        }
    }
    
    

到了这里,关于RabbitMQ安装与简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 消息队列——RabbitMQ基本概念+容器化部署和简单工作模式程序

    目录 基本概念  MQ 的优势  1.应用解耦  2.异步提速  3.削峰填谷  MQ 的劣势 使用mq的条件  常见MQ产品  RabbitMQ简介 RabbitMQ的六种工作模式   JMS RabbitMQ安装和配置。 RabbitMQ控制台使用。 RabbitMQ快速入门——生产者 需求: RabbitMQ快速入门——消费者 小结  多个系统之间的通信方

    2024年02月16日
    浏览(46)
  • 消息队列-------Rabbitmq介绍和安装

    消息队列就是基础数据结构中的“先进先出”的一种数据机构。想一下,生活中买东西,需要排队,先排的人先买消费,就是典型的“先进先出” MQ是一直存在,不过随着微服务架构的流行,成了解决微服务之间问题的常用工具。  1.应用解耦  单体应用---》分布式应用  

    2024年02月10日
    浏览(43)
  • RabbitMQ消息队列__学习报告

    一、Linux部署RabbitMQ (一)环境 1.rabbitmq1:192.168.163.128 [root@rabbitmq1 ~]# hostnamectl set-hostname client 2.rabbitmq2:192.168.163.132 [root@rabbitmq2 ~]# hostnamectl set-hostname haproxy 3.rabbitmq3:192.168.163.135 [root@rabbitmq3~]#  hostnamectl set-hostname rabbitmq3 4.域名解析 [root@localhost ~]# vim /etc/hosts 192.168.163.128

    2023年04月25日
    浏览(30)
  • 消息队列之RabbitMQ的安装配置

    RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。点击跳转RabbitMQ官方地址 简单模式,work模式 ,Publish/Subscribe发布与订阅模式,Routing路由模式,

    2024年04月25日
    浏览(41)
  • GoLong的学习之路,进阶,RabbitMQ (消息队列)

    快有一周没有写博客了。前面几天正在做项目。正好,项目中需要MQ(消息队列),这里我就补充一下我对mq的理解。其实在学习java中的时候,自己也仿照RabbitMQ自己实现了一个单机的mq,但是mq其中一个特点也就是,分布式我在项目中没有涉及。这里我用go语言将RabbitMQ的操作

    2024年02月03日
    浏览(47)
  • 【RabbitMQ】RabbitMQ 消息的堆积问题 —— 使用惰性队列解决消息的堆积问题

    消息的堆积问题是指在消息队列系统中,当生产者以较快的速度发送消息,而消费者处理消息的速度较慢,导致消息在队列中积累并达到队列的存储上限。在这种情况下,最早被发送的消息可能会在队列中滞留较长时间,直到超过队列的容量上限。当队列已满且没有更多的可

    2024年02月05日
    浏览(50)
  • RabbitMQ-网页使用消息队列

    几种模式 从最简单的开始 添加完新的虚拟机可以看到,当前admin用户的主机访问权限中新增的刚添加的环境 1.1查看交换机 交换机列表中自动新增了刚创建好的虚拟主机相关的预设交换机。一共7个。前面两个 direct类型的交换机,一个是(AMQP default)还有一个是amq.direct,它们

    2024年02月07日
    浏览(42)
  • RabbitMQ 消息队列使用

    同步调用优点: 时效性强,立即得到结果 缺点: 耦合度高 新业务新需求到来时,需要修改代码 性能和吞吐能力下降 调用服务的响应时间为所有服务的时间之和 资源浪费 调用链中的服务在等待时不会释放请求占用的资源 级联失败 一个服务执行失败会导致调用链后续所有服务失

    2024年01月21日
    浏览(48)
  • rabbitmq-常见七种消息队列-控制台界面管理-python-实现简单访问

    1.1.生产者和消费者 生产者(Producer) 消息的创建者。 负责创建和推送数据到消息服务器。 消费者(Consumer) 消息的接收方。 负责接收消息和处理数据。 1.2.消息队列(Queue) 消息队列是RabbitMQ的内部对象,用于存储生产者的消息直到发送给消费者,它是消费者接收消息的地方。 消息

    2024年02月03日
    浏览(68)
  • Golang使用消息队列(RabbitMQ)

    最近在使用Golang做了一个网盘项目(类似百度网盘),这个网盘项目有一个功能描述如下:用户会删除一个文件到垃圾回收站,回收站的文件有一个时间期限,比如24h,24h后数据库中记录和oss中文件会被删除,在之前的版本中,可以使用定时任务来检查数据库记录中删除时间

    2024年02月10日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包