RabbitMQ 基础知识
- 2022 年 6 月 23 日
本文字数:3744 字
阅读完需:约 12 分钟
RabbitMQ 基础知识
一、RabbitMQ 概述
RabbitMQ 是一款使用Erlang语言开发的,实现 AMQP(高级消息队列协议)的开源消息中间件,它具有以下特性
开源、性能优秀,稳定性保障
支持持久化,传输确认,发布确认,可靠性消息投递模式(confirm)、返回模式(return)等保证了 MQ 的可靠性
集群模式丰富,HA 模式,多台 RabbitMQ 服务器可以组成一个集群,形成一个逻辑 Broker
支持多种语言客户端。RabbitMQ 几乎支持所有常用编程语言,包括 Java、.NET、Ruby 等
提供多种工作模式,工作模式有:简单模式、工作队列模式、发布订阅模式、路由模式、通配符模式
二、Linux 环境下载安装 RabbitMQ
1.下载 Erlang 和 RabbitMQ
RabbitMQ 是基于 Erlang 语言开发的,所以在先安装 RabbitMQ 之前先安装 Erlang 语言
Erlang 官网下载地址: https://packagecloud.io/rabbitmq/erlang
下载 RabbitMQ
RabbitMQ 下载地址:https://packagecloud.io/rabbitmq/rabbitmq-server
2.Linux 环境下安装 Erlang 和 RabbitMQ
在 Erlang 的安装目录下安装 Erlang
[root@bp18425116f0cojd1vnz modules]# yum install erlang-23.3.4.11-1.el7.x86_64.rpm
alinux3-updates 59 kB/s | 4.1 kB 00:00
alinux3-plus 96 kB/s | 2.5 kB 00:00
alinux3-plus 51 MB/s | 4.9 MB 00:00
alinux3-powertools 88 kB/s | 3.0 kB 00:00
alinux3-os 154 kB/s | 3.8 kB 00:00
Docker CE Stable - x86_64 18 kB/s | 3.5 kB 00:00
Extra Packages for Enterprise Linux Modular 3 - x86_64 39 kB/s | 10 kB 00:00
Extra Packages for Enterprise Linux 8 - x86_64 178 kB/s | 4.7 kB 00:00
Extra Packages for Enterprise Linux 8 - x86_64 40 MB/s | 11 MB 00:00
检查 Erlang 是否安装成功,按两次 Ctrl+C 退出命令模式
[root@bp18425116f0cojd1vnz bin]# erl -v
Erlang/OTP 23 [erts-11.2.2.10] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Eshell V11.2.2.10 (abort with ^G)
1>
BREAK: (a)bort (A)bort with dump (c)ontinue (p)roc info (i)nfo
(l)oaded (v)ersion (k)ill (D)b-tables (d)istribution
在 RabbitMQ 的安装目录下安装 socat
[root@bp18425116f0cojd1vnz modules]# yum -y install socat
Last metadata expiration check: 0:13:23 ago on Wed 22 Jun 2022 10:58:12 AM CST.
Module yaml error: Unexpected key in data: static_context [line 9 col 3]
Module yaml error: Unexpected key in data: static_context [line 9 col 3]
Package socat-1.7.3.3-2.1.al8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
在 RabbitMQ 的安装目录下 RabbitMQ
[root@bp18425116f0cojd1vnz modules]# yum install rabbitmq-server-3.8.34-1.el8.noarch.rpm
Last metadata expiration check: 0:24:38 ago on Wed 22 Jun 2022 10:58:12 AM CST.
Module yaml error: Unexpected key in data: static_context [line 9 col 3]
Module yaml error: Unexpected key in data: static_context [line 9 col 3]
Dependencies resolved.
=====================================================================================================================================================================
Package Architecture Version Repository Size
=====================================================================================================================================================================
Installing:
rabbitmq-server noarch 3.8.34-1.el8 @commandline 15 M
检查 RabbitMQ 服务是否安装成功
[root@bp18425116f0cojd1vnz bin]# rpm -qa|grep rabbitmq
rabbitmq-server-3.8.34-1.el8.noarch
启动 RabbitMQ 服务
[root@bp18425116f0cojd1vnz modules]# systemctl start rabbitmq-server
查看 RabbitMQ 启动状态
[root@bp18425116f0cojd1vnz bin]# systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-06-22 17:18:54 CST; 2s ago
Process: 3927019 ExecStop=/usr/sbin/rabbitmqctl shutdown (code=exited, status=69)
Main PID: 3929124 (beam.smp)
Status: "Initialized"
Tasks: 21 (limit: 12371)
Memory: 96.1M
CGroup: /system.slice/rabbitmq-server.service
├─3929124 /usr/lib64/erlang/erts-11.2.2.10/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stb>
├─3929139 erl_child_setup 32768
├─3929185 inet_gethost 4
└─3929186 inet_gethost 4
Jun 22 17:18:53 bp18425116f0cojd1vnz rabbitmq-server[3929124]: TLS Library: OpenSSL - OpenSSL 1.0.2o-fips 27 Mar 2018
Jun 22 17:18:53 bp18425116f0cojd1vnz rabbitmq-server[3929124]: Doc guides: https://rabbitmq.com/documentation.html
Jun 22 17:18:53 bp18425116f0cojd1vnz rabbitmq-server[3929124]: Support: https://rabbitmq.com/contact.html
Jun 22 17:18:53 bp18425116f0cojd1vnz rabbitmq-server[3929124]: Tutorials: https://rabbitmq.com/getstarted.html
Jun 22 17:18:53 bp18425116f0cojd1vnz rabbitmq-server[3929124]: Monitoring: https://rabbitmq.com/monitoring.html
Jun 22 17:18:53 bp18425116f0cojd1vnz rabbitmq-server[3929124]: Logs: /var/log/rabbitmq/rabbit@bp18425116f0cojd1vnz.log
Jun 22 17:18:53 bp18425116f0cojd1vnz rabbitmq-server[3929124]: /var/log/rabbitmq/rabbit@bp18425116f0cojd1vnz_upgrade.log
Jun 22 17:18:53 bp18425116f0cojd1vnz rabbitmq-server[3929124]: Config file(s): (none)
Jun 22 17:18:54 bp18425116f0cojd1vnz rabbitmq-server[3929124]: Starting broker... completed with 3 plugins.
Jun 22 17:18:54 bp18425116f0cojd1vnz systemd[1]: Started RabbitMQ broker.
开启 RabbitMQ 的 Web 插件管理
[root@bp18425116f0cojd1vnz modules]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@bp18425116f0cojd1vnz:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@bp18425116f0cojd1vnz...
Plugin configuration unchanged
服务器测试是否能够访问
[root@bp18425116f0cojd1vnz rabbitmq]# wget http://127.0.0.1:15672
--2022-06-22 17:21:12-- http://127.0.0.1:15672/
Connecting to 127.0.0.1:15672... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2884 (2.8K) [text/html]
Saving to: ‘index.html’
index.html 100%[==================================================================================>] 2.82K --.-KB/s in 0s
2022-06-22 17:21:12 (384 MB/s) - ‘index.html’ saved [2884/2884]
开放端口访问
[root@bp18425116f0cojd1vnz rabbitmq]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
[root@bp18425116f0cojd1vnz rabbitmq]# firewall-cmd --zone=public --add-port=15672/tcp --permanent
查看开放的端口
firewall-cmd --list-ports
版权声明: 本文为 InfoQ 作者【龙空白白】的原创文章。
原文链接:【http://xie.infoq.cn/article/8643e483ac35c05da7d3073e9】。文章转载请联系作者。
龙空白白
还未添加个人签名 2021.04.12 加入
IT行业 后端开发
评论