在CentOS7上安装RabbitMQ(RPM安装方式)

2023-10-27

首先需要安装erlang,参考:http://fedoraproject.org/wiki/EPEL/FAQ#howtouse

rpm -Uvh https://download.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install erlang

安装过程中会有提示,一路输入“y”即可。

完成后安装RabbitMQ:

先下载rpm:

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm

下载完成后安装:

yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm 

完成后启动服务:

service rabbitmq-server start

可以查看服务状态:

service rabbitmq-server status

这里可以看到log文件的位置,转到文件位置,打开文件:

这里显示的是没有找到配置文件,我们可以自己创建这个文件

cd /etc/rabbitmq/
vi rabbitmq.config

编辑内容如下:

[{rabbit, [{loopback_users, []}]}].

这里的意思是开放使用,rabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置。

保存配置后重启服务:

service rabbitmq-server stop
service rabbitmq-server start

将服务设置成自动启动:

chkconfig 服务名 on

此时就可以从外部访问了,但此时再看log文件,发现内容还是原来的,还是显示没有找到配置文件,可以手动删除这个文件再重启服务,不过这不影响使用

rm rabbit@mythsky.log 
service rabbitmq-server stop
service rabbitmq-server start

开放5672端口:

firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --reload 

在Windows上进行测试:

新建.net core控制台项目,引用RabbitMQ.Client包:

Install-Package RabbitMQ.Client

测试代码:

复制代码

public static void Main(string[] args)
        {
            ConnectionFactory factory = new ConnectionFactory();
            factory.UserName = "guest";
            factory.Password = "guest";
            factory.VirtualHost = "/";
            factory.HostName = "localhost";
            //factory.HostName = "10.255.19.111";
            try
            {
                IConnection conn = factory.CreateConnection();
                IModel model = conn.CreateModel();
                string exchangeName = "test";
                string queueName = "testq";
                string routingKey = "first";

                model.ExchangeDeclare(exchangeName, ExchangeType.Direct);
                model.QueueDeclare(queueName, false, false, false, null);
                model.QueueBind(queueName, exchangeName, routingKey, null);
                byte[] messageBodyBytes = System.Text.Encoding.UTF8.GetBytes("Hello, world!");
                model.BasicPublish(exchangeName, routingKey, null, messageBodyBytes);
                Console.WriteLine("message sended.");

                bool noAck = false;
                BasicGetResult result = model.BasicGet(queueName, noAck);
                if (result == null)
                {
                    Console.Write("no message.");
                }
                else
                {
                    IBasicProperties props = result.BasicProperties;
                    byte[] body = result.Body;
                    model.BasicAck(result.DeliveryTag, false);
                    string message = System.Text.Encoding.UTF8.GetString(body);
                    Console.Write(message);
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
        }

复制代码

也可以使用官网的例子(这里更清晰):

http://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html

发送端:

复制代码

using System;
using RabbitMQ.Client;
using System.Text;

class Send
{
    public static void Main()
    {
        var factory = new ConnectionFactory() { HostName = "localhost" };
        using(var connection = factory.CreateConnection())
        using(var channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "hello",
                                 durable: false,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);

            string message = "Hello World!";
            var body = Encoding.UTF8.GetBytes(message);

            channel.BasicPublish(exchange: "",
                                 routingKey: "hello",
                                 basicProperties: null,
                                 body: body);
            Console.WriteLine(" [x] Sent {0}", message);
        }

        Console.WriteLine(" Press [enter] to exit.");
        Console.ReadLine();
    }
}

复制代码

接收端:

复制代码

using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Text;

class Receive
{
    public static void Main()
    {
        var factory = new ConnectionFactory() { HostName = "localhost" };
        using(var connection = factory.CreateConnection())
        using(var channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "hello",
                                 durable: false,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);

            var consumer = new EventingBasicConsumer(channel);
            consumer.Received += (model, ea) =>
            {
                var body = ea.Body;
                var message = Encoding.UTF8.GetString(body);
                Console.WriteLine(" [x] Received {0}", message);
            };
            channel.BasicConsume(queue: "hello",
                                 noAck: true,
                                 consumer: consumer);

            Console.WriteLine(" Press [enter] to exit.");
            Console.ReadLine();
        }
    }
}

复制代码

在Windows上发送,在CentOS上接收,效果如图:

开启管理UI:

rabbitmq-plugins enable rabbitmq_management
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload

在Windows下打开地址:

http://10.255.19.111:15672

用户名和密码都是 guest

开启rabbitmq远程访问

添加用户:rabbitmqctl add_user XRom XRom123  //XRom是用户名, XRom123是用户密码

添加权限:rabbitmqctl set_permissions -p “/” XRom “.*” “.*” “.*”

修改用户角色:rabbitmqctl set_user_tags XRom administrator

然后就可以远程访问了,然后可直接配置用户权限等信息

rabbitmq常用命令

add_user

delete_user

change_password

list_users

add_vhost

delete_vhost

list_vhostsset_permissions[-p ]

clear_permissions [-p ]

list_permissions[-p ]

list_user_permissions

list_queues[-p ] [ …]

list_exchanges [-p ] [ …]

list_bindings[-p ]

list_connections [ …]

这样就可以方便管理RabbitMQ了。

转自:https://www.cnblogs.com/uptothesky/p/6094357.html

)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在CentOS7上安装RabbitMQ(RPM安装方式) 的相关文章

  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 构造函数初始化:提高代码可读性和执行效率

    在C 中 构造函数是用来初始化对象数据成员的 一个对象在创建的时候 构造函数会被自动调用 以便为该对象的数据成员赋初值 传统的初始化方式是在构造函数内部对数据成员逐一进行初始化 这种方式虽然可行 但是代码复杂度高且效率低下 本文将介绍如何使
  • 一文详解!嵌入式软件的自动化测试框架、测试流程与功能研究分析

    目录 引言 1 嵌入式软件自动化测试平台分析 2 嵌入式软件自动化测试平台概要设计 3 嵌入式软件自动化测试平台详细设计 3 3 功能设计 引言 嵌入式软件是指被设计用于嵌入或控制另一个产品 设备或系统的软件 它在各种应用领域 例如消费电子
  • 如何批量提取不同文件夹下的图片并随机重命名

    问题提出 无论是在为了跑深度学习模型而准备数据集 还是其他的一些用途 相信大家都会遇到一个问题 我所需要的图片分布在很多不同的文件夹下 但我不需要这么多文件夹 那么我如果要使用这些图片的话 就需要把这些文件夹下的图片一个个提取出来 然后再放
  • GEE-页面介绍

    页面介绍 一 首页介绍 二 Datasets 1 Home首页介绍 1 1Climate and Weather 对应上面的 Browse by tags 标签 即为按照标签访问数据 1 2Imagery 对应上面的 landsat MOD
  • 蓝桥杯JAVA B组 2020(2)第三题 合并检测

    一 题目描述 如果结果为阴性 则说明这 k个人都是阴性 用一个试剂盒完成了 k 个人的检测 如果结果为阳性 则说明至少有一个人为阳性 需要将这 k 个人的样本全部重新独立检测 加上最开始的合并检测 一共使用了 k 1 个试剂盒完成了 k 个
  • 基于ssm框架的毕业设计管理系统 毕业设计-附源码211633

    摘 要 随着科学技术的飞速发展 各行各业都在努力与现代先进技术接轨 通过科技手段提高自身的优势 对于毕业设计管理系统当然也不能排除在外 随着网络技术的不断成熟 带动了毕业设计管理系统 它彻底改变了过去传统的管理方式 不仅使服务管理难度变低了
  • VMware出现“该虚拟机似乎正在使用中”问题

    按照以下步骤解决虚拟机异常关机无法打开问题 1 在用VMware虚拟机的时候 有时会发现打开虚拟机时提示 该虚拟机似乎正在使用中 如果该虚拟机未在使用 请按 获取所有权 T 按钮获取它的所有权 否则 请按 取消 按钮以防损坏 配置文件 D
  • Android——使用DatePicker和TimePicker显示当前日期和时间

    1 DatePicker和TimePicker两种实现动态输入日期和时间的功能 2 DatePickerDialog和TimePickerDialog两种实现动态输入日期和时间的对话框 3 两组监测日期和时间改变的监听器 1 OnDateC
  • vue中使用百度地图 添加标记物,点击标记物弹窗,画运动轨迹,位置纠偏,逆地址解析

    在vue项目中使用百度地图 添加标记物 位置纠偏 信息弹窗 画轨迹 坐标转换 逆地址解析 参考vue baidu map开发文档 安装 npm install vue baidu map save 全局注册 在main js中引入以下代码
  • 【Vue】关于开发中本地图片加载失败的经验总结

    文章目录 1 图片存放在assets 2 图片存放在static中 3 其他需要注意的点 我的源码 img或者el avatar中的src没有提供静态值 而是绑定一个动态变量 如果这个变量的路径是存放在assets里 则图片会加载失败 1
  • nginx代理路径配置总结

    一 发现问题 配置nginx代理的时候 发现location配置的路径和代理的上下文路径的组合不同 服务端接收到的uri的路径不同 导致了controller的RequestMapping匹配出现问题 所以就仔细研究了一下nginx路径配置
  • 对象属性拷贝(BeanUtils.copyProperties)用法

    系列文章目 对象属性拷贝 BeanUtils copyProperties 用法 一 BeanUtils copyProperties参数赋值顺序 根据导包不同 方式不同 一个为org springframework beans BeanU
  • MySQL数据库渗透及漏洞利用总结

    Mysql数据库是目前世界上使用最为广泛的数据库之一 很多著名公司和站点都使用Mysql作为其数据库支撑 目前很多架构都以Mysql作为数据库管理系统 例如LAMP 和WAMP等 在针对网站渗透中 很多都是跟Mysql数据库有关 各种Mys
  • FCKEditor 2.3.2 的type漏洞修复

    从网上下了最新的FCKeditor 2 3 2和对应的JSP整合文件FCKeditor 2 3 安装后进行测试 发现type漏洞仍然存在 汗 漏洞情况是 或在type后面跟上一个非file image flash media参数 就可以上传
  • 探索数据分析与可视化:使用R语言实现

    探索数据分析与可视化 使用R语言实现 概述 数据分析与可视化是现代数据科学中至关重要的环节 R语言作为一种强大的统计分析工具和编程语言 提供了丰富的功能和库来处理数据 进行统计分析和生成可视化图表 本文将介绍如何使用R语言进行数据分析与可视
  • 关于 cocos2d-x win32 版本的 cpu 占用改良

    初学 c2dx 下载的 2 02 版本 发现其 HelloWorld 演示项目 居然一直占据了 100 的 CPU 猜测它有可能是在主循环里使用了 Sleep 0 一搜 果然定位到具体代码 它位于 cocos2dx platform win
  • Flutter常用布局方式

    文章目录 flutter 布局介绍 一 Container 布局 1 属性 2 示例 二 线性布局 1 说明 2 属性 3 示例 三 弹性布局 Flex 1 属性 2 Expanded 的使用 3 示例 四 流式布局 1 说明 2 属性 3
  • 方差、标准差、平方差、残差

    2018 06 21 创建人 Ruo Xiao 邮箱 xclsoftware 163 com 2018 06 29 修改人 Ruo Xiao 增加对残差的说明 一 方差 1 定义 数据分别与其平均数的差的平方和的平均数 由 D 表示 2 意
  • Nssm 安装Window服务

    环境 Wind10 1 下载nssm exe 官网 http nssm cc download 2 解压 根据操作系统选择32位或64位nssm 在该目录启动命令行窗口 3 服务注册 命令行输入 nssm exe install XX或者n
  • 在CentOS7上安装RabbitMQ(RPM安装方式)

    首先需要安装erlang 参考 http fedoraproject org wiki EPEL FAQ howtouse rpm Uvh https download fedoraproject org pub epel epel rel