rabbitmq的学习与搭建


前言

随着系统的用户量增长与业务增长,许多复杂耗时的操作会是系统卡顿或者用户体验差,所以会需要用到异步处理来提升系统的稳健性。

所以需要使用到消息队列了,消息队列目前有很多种,比如ActiveMQ、RabbitMQ、RocketMQ、Kafka。要根据自己的场景选择最合适自己的消息队列,所以我这里是选择了RabbitMQ。下面会详细记录我学习到的内容。


一、认识RabbitMq

RabbitMQ 是一个消息中间件,它接收消息并且转发。
就类似于一个快递站,卖家把快递给到快递公司快递公司运输到不同的站点,然后通过不同的快递员,送到我们的手上。
MQ也是这样,生产者把消息发给交换机交换机接收消息,再通过不同的交换机发给对应队列消费者消费者就处理掉对应的消息。

为什么要使用RabbitMq?

在我的场景中,由于部分业务计算过多,用户请求比较耗时,某个时间段使用用户多,导致系统进程不够用,从而系统崩溃,新访问的人无法访问网站。所以优化流程,用户正常操作,我们保存基本数据库数据,然后便返回成功结果给用户,并后台发送消息给rabbitmq,编写异步消费者来处理计算。这样系统又能得到正常运行,功能也能正常的使用,同时系统支持的用户量也变大了许多。

概念认识

生产者

产生数据发送消息的程序是生产者

交换机

交换机是 RabbitMQ 非常重要的一个部件,一方面它接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢弃,这个得有交换机类型决定

队列

队列是 RabbitMQ 内部使用的一种数据结构,尽管消息流经 RabbitMQ 和应用程序,但它们只能存储在队列中。队列仅受主机的内存和磁盘限制的约束,本质上是一个大的消息缓冲区。许多生产者可以将消息发送到一个队列,许多消费者可以尝试从一个队列接收数据。这就是我们使用队列的方式

消费者

消费与接收具有相似的含义。消费者大多时候是一个等待接收消息的程序。请注意生产者,消费者和消息中间件很多时候并不在同一机器上。同一个应用程序既可以是生产者又是可以是消费者。

二、安装RabbitMq

windows

下载安装包

前往官网下载安装包: RabbitMq官网,下面附上图文教程,建议翻墙下载不然很慢。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
版本对应图部分内容如下。
在这里插入图片描述
这里选择下载的支持rabbitmq版本的erlang。
在这里插入图片描述
如果不想要官网版本的rabbitmq,也可以去github上下载对应版本的rabbitmq。github上往下面拉,每个版本都有assets静态文件下载。
在这里插入图片描述

安装步骤

安装erlang

右键管理员身份运行
在这里插入图片描述
然后傻瓜式下一步,要记录安装路径,然后在系统环境变量加上安装的路径。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装rabbitmq

直接双击打开,傻瓜式下一步安装,然后选择安装路径不要带中文就可以了。
主要的是安装可视化管理页面
在安装目录的sbin文件夹下,打开cmd,运行rabbitmq-plugins enable rabbitmq_management安装可是换管理页面。
在这里插入图片描述
在这里插入图片描述
然后在任务管理器中,重启rabbitmq。访问 http://127.0.0.1:15672,登录默认用户名与密码,guest。默认用户名与密码是相同的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改密码

在这里插入图片描述

修改可视化页面访问端口与消息传输端口

rabbitmq安装之后,会生成一个目录,找到目录之后,在里面新建一个rabbitmq.config文件,然后贴上一下内容,修改端口重启一下rabbitmq就可以了。
路径:C:\Users\Administrator\AppData\Roaming\RabbitMQ
在这里插入图片描述
配置内容,rabbit是消息传递时的端口,management是可视化页面的访问端口。

[{
  rabbit,
  [ {
    tcp_listeners,
    [ {"0.0.0.0" ,38001}]
  }]
},{
  rabbitmq_management,
  [ {
    listener,
    [
      {port , 37001},
      {ip , "0.0.0.0"},
      {ssl,false}
    ]
  }]
}].

重启rabbitmq
在这里插入图片描述
windows的安装基本就结束了。

Linux

下载安装包

和windows安装一样,根据自己的Linux系统下载合适的安装包,我的Linux系统是centos7的,所以我下载的rabbitmq与erlang都是支持centos7的。
安装包下载地址:下载地址
在这里插入图片描述
参照版本对应表找到匹配的安装包。
在这里插入图片描述
版本对应
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装步骤

将下载好的安装包,上传到需安装的linux系统上。
先安装erlang,再安装socat【安装rabbitmq需要socat】,最后再安装rabbitmq。
安装erlang:rpm -ivh erlang-xxx.rpm
安装socat:yum install socat -y
安装rabbitmq:rpm -ivh rabbitmq-server-xxx.el7.noarch.rpm

配置与启动rabbitmq

启动rabbitmq:systemctl start rabbitmq-server
设置rabbitmq开机自启动:systemctl enable rabbitmq-server
安装可视化管理界面:rabbitmq-plugins enable rabbitmq_management

安装可视化管理界面默认端口是15672,使用guest是无法登录的,因为guest只允许本地登录,所以要添加用户。
添加用户:rabbitmqctl add_user admin 123
设置用户角色:rabbitmqctl set_user_tags admin administrator
设置用户虚拟机权限:rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

修改密码

同windows一样,在管理界面可以修改

修改可视化界面访问端口与消息传输端口

/etc/rabbitmq目录下,创建rabbitmq.conf 文件,添加以下内容。

#默认client端口为5672
listeners.tcp.default=6666
#默认界面管理端口为15672
management.tcp.port=16666

然后前往/usr/lib/rabbitmq//lib/rabbitmq_server-xxx/sbin/下,修改rabbitmq-defaults文件内容。增加以下内容。

#添加配置路径到文件中,保存退出
CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf

在这里插入图片描述
然后运行命令重启rabbitmq,即可生效。
重启命令:systemctl restart rabbitmq-server

linux的安装就完成了


目前这篇rabbitmq的搭建就记录到这了。后续讲解实际应用。

文章引用:51CTO博客
文章引用:CSDN
文章引用:CSDN


版权声明:本文为qq_27756989原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。