CentOS7.2中安装rabbitmq

简介: 关于虚拟机中如何安装CentOS7,在我这个文章中http://blog.csdn.net/junshangshui/article/details/79368111下载erlang,因为rabbitmq是erlang编写的http://www.erlang.org/downloads这里我下载的是20.1版本的。

关于虚拟机中如何安装CentOS7,在我这个文章中http://blog.csdn.net/junshangshui/article/details/79368111

  1. 下载erlang,因为rabbitmq是erlang编写的
    http://www.erlang.org/downloads

这里我下载的是20.1版本的。点击OTP20.1后,进入如下界面

保存这个文件。下载完成后的文件为 otp_src_20.1.tar.gz

2.下载rabbitmq

http://www.rabbitmq.com/download.html

下载完成后文件为rabbitmq-server-generic-unix-3.7.3.tar.xz

3.将下载的这两个文件复制到虚拟机中的CentOS7.2中的根目录下的usr文件夹中

  1. 安装erlang

打个一个终端,解压文件 tar -zxvf otp_src_20.1.tar.gz

利用yum安装erlang编译所依赖的环境 yum -y install make gcc gcc-c++ kernel-devel m4ncurses-devel openssl-devel unixODBC-devel

到otp_src_20.1文件夹下,进行configure安装环境配置,--prefix=/usr/erlang 是说明将当前的安装放在usr/erlang文件夹下。

./configure --prefix=/usr/erlang--without-javac

编译 make

安装 make install 。安装完成后会有一个erlang文件夹。otp_src_20.1和otp_src_20.1.tar.gz都可以删除了。

5.安装rabbitmq

解压rabbitmq-server-generic-unix-3.7.3.tar.xz到 usr下,然后改名为rabbitmq

因为下载的rabbitmq是编译好的方便的版本,所以只要解压就行了。然后就可以删除压缩文件了

然后进入计算机下面的etc文件夹中找到操作系统配置文件profile

在最后加上这两行环境变量,保存。(和windows系统中的环境变量的作用差不多)

export PATH=$PATH:/usr/erlang/bin

export PATH=$PATH:/usr/rabbitmq/sbin

然后重启电脑就可生效了

直接在桌面点击右键开启一个终端,输入下面这行命令来开启rabbitmq

rabbitmq-server

开启web监控.需要进入目录usr/rabbitmq/sbin 打开终端输入以下命令来启动rabbitmq_management插件。

打开浏览器输入 127.0.0.1:15672 就可以看到WEB管理界面,输入guest guest登录

大约等了一分钟后就能看到rabbitmq的信息了。

6.配置rabbitmq

点击节进入后会发现没有默认配置文件

然后可查看/usr/rabbitmq/sbin下面的rabbitmq-defaults文件,如下图,可以看到CONFIG_FILE的默认路径。

从以下网址找个配置文件(点击Raw,然后复制),(根据上图路径)到usr/rabbitmq/etc/rabbitmq/下新建一个名为rabbitmq.config的文件,把复制的配置代码粘贴上去。

https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.config.example

然后在终端重启rabbitmq-server,进入web管理界面,再点击进入rabbitmq节点就可以看到有配置文件了,不再是空的了。

打开rabbitmq.config文件后,可以知道默认的tcp连接端口是5672。

{tcp_listeners, [5672]} ,

还可以看到日志记录级别,一般把info改为error,即出错才记日志,否则日志太大。

  {rabbit_channel_lager_event, [{handlers, [

                                  {lager_forwarder_backend,

                                   [lager_event,error]}]}]},

  {rabbit_conection_lager_event, [{handlers, [

                                    {lager_forwarder_backend,

                                     [lager_event,error]}]}]}

上面最后一行后面的逗号注意去掉

还可以设置最大占用的内存数,去掉注释,默认为最大占用40%内存。达到40%后会触发阻塞。

{vm_memory_high_watermark, 0.4}, 注意去掉这行最后的逗号

保存文件,然后在终端重启rabbitmq-server就可以了

7.C#客户端连接rabbitmq

打开官网说明文档(人个用的chrome浏览器打开并且用它自带的网页翻译功能翻转为中文)

http://www.rabbitmq.com/dotnet-api-guide.html

了解了一下文档后,新建一个asp.net core控制台应用程序,打开nuget工具,下载RabbitMQ.Client这个包。

在CentOS中设置防火墙允许外部访问5672端口,如果要在win10中使用浏览器访问虚拟机中的rabbitmq WEB管理工具,则再添加一个15672端口。

在CentOS中打开rabbitmq的web管理工具,添加一个用户xu,密码为abc123456,并且设置此用户的权限。

在CentOS中打开终端输入ifconfig得知ip地址。

新建一个asp.net core控制台程序,在nuget中下载RabbitMQ.Client包。写入如下代码:

static void Main(string[] args)
{
//一、连接rabbitmq
ConnectionFactory factory = new ConnectionFactory
{
UserName = "xu",
Password = "abc123456",
HostName = "192.168.213.140",
Port = 5672
};
IConnection conn = factory.CreateConnection();

        //二、创建一个通道
        IModel channel = conn.CreateModel();

        //三、创建一个交换机
        string exchangeName = "exchange1";
        string queueName = "queue1";
        string routingKey = "routingKey1";
        channel.ExchangeDeclare(exchangeName, ExchangeType.Direct);

        //四、创建一个消息队列并且绑定到交换机上
        channel.QueueDeclare(queueName,false,false,false,null);
        channel.QueueBind(queueName,exchangeName,routingKey,null);

        //五、发道一个消息到消息队列
        byte[] messageBodyBytes = System.Text.Encoding.UTF8.GetBytes("Hello, world!");
        channel.BasicPublish(exchangeName, routingKey, null, messageBodyBytes);

        Console.Read();
    }

运行程序后会发送一条消息到rabbitmq,打开web管理工具可看到有一条消息了。

再添加一个asp.net core控制台程序,从nuget下载好RabbitMQ.Client包。(记得设为启动项目),然后定入如下代码:

static void Main(string[] args)
{
//一、连接rabbitmq
ConnectionFactory factory = new ConnectionFactory
{
UserName = "xu",
Password = "abc123456",
HostName = "192.168.213.140",
Port = 5672
};
IConnection conn = factory.CreateConnection();

        //二、创建一个通道
        IModel channel = conn.CreateModel();

        //三、取出消息
        string queueName = "queue1";
        BasicGetResult result = channel.BasicGet(queueName, true);

        var msg = Encoding.UTF8.GetString(result.Body);
        Console.WriteLine(msg);
        Console.Read();
    }

运行后将成功取出消息,然后在WEB管理工具中可看到消息为0了。

特别问题,C#代码连不上虚拟机中的rabbitmq,报错如下:
RabbitMQ.Client.Exceptions.BrokerUnreachableException:“None of the specified endpoints were reachable”
修复一下LSP就行了。
以管理员身份运行cmd,输入"netsh winsock reset"回车,重启电脑就好了。


作者:junshangshui
来源:CSDN
原文:https://blog.csdn.net/junshangshui/article/details/79368061
版权声明:本文为博主原创文章,转载请附上博文链接!

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
2月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
507 69
|
17天前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
375 2
|
2月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
267 78
|
17天前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
254 16
|
3月前
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
187 80
|
2月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
169 10
|
3月前
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
318 2
|
2月前
|
运维 网络协议 Linux
CentOS下Bind服务的安装与故障排查
通过以上的步骤,您应该能够在CentOS系统上安装并配置BIND DNS服务,并进行基本的故障排查。
205 0
|
4月前
|
机器人 Linux
CentOS 7系统中安装特定版本CMake 3.21.2的方法。
到这里,过程已经全部完成。如果你跟随上面的步骤来,那么你现在已经拥有了一个全新的CMake版本在你的CentOS 7系统上了。这个过程就像是你通过一系列仪式,唤醒了一个沉睡已久的古老机器人,它现在完全按照你的意愿来帮你构建和编译软件了。
283 18
|
3月前
|
物联网 Linux 开发者
快速部署自己私有MQTT-Broker-下载安装到运行不到一分钟,快速简单且易于集成到自己项目中
本文给物联网开发的朋友推荐的是GMQT,让物联网开发者快速拥有合适自己的MQTT-Broker,本文从下载程序到安装部署手把手教大家安装用上私有化MQTT服务器。
915 5