RabbitMQ安装与简单使用

安装

下载资源

可以访问官网查看下载信息rabbitmq官网
在这里插入图片描述
选择合适的版本,注意:rabbitmq需要下载一个Erlang才能使用
我自己是在一下两个连接中下载的
rabbitmq 3.8.8
erlang 21.3.8.15
需要下载其他版本的同学注意erlang版本是否匹配,可以访问该链接查询匹配信息版本匹配信息
在这里插入图片描述

安装以及启动rabbitmq

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

访问mq

访问web界面

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

rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述
注意:下载插件是需要先关闭程序再下载

访问如下地址

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

访问成功界面如下:
在这里插入图片描述

用户管理

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

  1. 修改该用户权限
  2. 创建一个新用户,并赋予权限
    在这里插入图片描述
    下面讲解如何创建用户,并赋权
  • 获取用户信息
    rabbitmqctl list_users
    

    在这里插入图片描述

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

    在这里插入图片描述

  • 分配角色
    rabbitmqctl set_user_tags admin administrator
    

    在这里插入图片描述

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

    在这里插入图片描述

成功登录后,界面如下:
在这里插入图片描述

简单使用

  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);}
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/123798.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java Stream的基本使用

Stream特点 Stream的一系列操作组成了Stream的流水线, Stream流水线包含: 数据源: 这里的数据源可能是集合/数组, 可能是生成器, 甚至可能是IO通道(Files.lines)零个或多个中间操作: 中间操作会导致流之间的转化, 如filter(Predicate)一个终端操作: 终端操作会产生最终所需要的…

【考研英语】2011 年英语(一)排序题思路复盘(费曼学习法)

文章目录 引言一、找语段特征词二、确定位置写在最后 引言 英语一中的新题型之一 —— 排序题&#xff0c;我是看的刘琦老师的方法课&#xff0c;她用的 2011 年的真题来讲解方法。讲完让我们回去用“费曼学习法”复盘以下&#xff0c;我个人感觉是一个不错的方法&#xff0c;…

Altium Designer 批量添加元器件后缀

Altium Designer 批量添加元器件后缀 方法一方法二可能出现的问题要注意 方法一 您可以使用 Altium Designer 中的“批量修改元器件名称”功能来批量添加元器件后缀。具体步骤如下&#xff1a; 1.为了方便显示 操作流程&#xff0c;我这里复制了几个原理图的文件&#xff0c;粘…

8.3Jmeter使用json提取器提取数组值并循环(循环控制器)遍历使用

Jmeter使用json提取器提取数组值并循环遍历使用 响应返回值例如&#xff1a; {"code":0,"data":{"totalCount":11,"pageSize":100,"totalPage":1,"currPage":1,"list":[{"structuredId":&q…

“构建高效的前端表单验证与增删改功能实现“

目录 引言1. 基础增删改功能代码展示后端代码 2. 表单验证基本表单验证自定义验证规则 总结 引言 在现代Web开发中&#xff0c;前端表单验证和增删改功能是不可或缺的核心要素。本文将介绍如何使用ElementUI库来实现高效的前端表单验证和增删改功能。我们将从基础开始&#xf…

Flutter+SpringBoot实现ChatGPT流实输出

FlutterSpringBoot实现ChatGPT流式输出、上下文了连续对话 最终实现Flutter的流式输出上下文连续对话。 这里就是提供一个简单版的工具类和使用案例&#xff0c;此处页面仅参考。 服务端 这里直接封装提供工具类&#xff0c;修改自己的apiKey即可使用&#xff0c;支持连续…

FPGA project : TFT_LCD

实验目标&#xff1a; 驱动TFT_LCD显示十色彩条。 重点掌握的知识&#xff1a; 1&#xff0c;液晶显示器&#xff0c;简称LCD(Liquid Crystal Display)&#xff0c;相对于上一代CRT显示器(阴极射线管显示器)&#xff0c;LCD显示器具有功耗低、体积小、承载的信息量大及不伤眼…

vtk 动画入门 1 代码

实现效果如图&#xff1a; #include <vtkAutoInit.h> //VTK_MODULE_INIT(vtkRenderingOpenGL2); //VTK_MODULE_INIT(vtkInteractionStyle); VTK_MODULE_INIT(vtkRenderingOpenGL2); VTK_MODULE_INIT(vtkInteractionStyle); //VTK_MODULE_INIT(vtkRenderingFreeType); #in…

在pycharm中出现下载软件包失败的解决方法

一. 一般情况下我们会选择在设置中下载软件包,过程如下. 1. 直接点击左上角的文件, 再点击设置, 再点击项目, 在右边选择python解释器,点击号,输入要下载的软件包, 在下面的一系列的包中选择相对应的包,点击安装就可以了,有的时候我们下载的是最新的版本,如果要下载固定的版本…

postgresql-备份与恢复

postgresql-备份与恢复 基本概念备份类型物理备份与逻辑备份在线备份与离线备份全量备份与增量备份 备份恢复工具备份与恢复逻辑备份与还原备份单个数据库psqlpg_dumppg_store 备份整个集群 基本概念 服务器系统错误、硬件故障或者人为失误都可能导致数据的丢失或损坏。因此&am…

小谈设计模式(15)—观察者模式

小谈设计模式&#xff08;15&#xff09;—观察者模式 专栏介绍专栏地址专栏介绍 观察者模式核心思想主要角色Subject&#xff08;被观察者&#xff09;ConcreteSubject&#xff08;具体被观察者&#xff09;Observer&#xff08;观察者&#xff09;ConcreteObserver&#xff0…

创建型设计模式 原型模式 建造者模式 创建者模式对比

创建型设计模式 单例 工厂模式 看这一篇就够了_软工菜鸡的博客-CSDN博客 4.3 原型模式 4.3.1 概述 用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型对象相同的新对象。 4.3.2 结构 原型模式包含如下角色&#xff1a; 抽象原型类&#xff1a;规定了…