消息队列(Message Queue)
消息:应用间传送的数据。
队列:一种先进先出的数据结构。
消息队列:一种在应用程序之间传递消息的通信方式,允许程序之间异步的发送和接收消息。也就是说,发送消息方不用关系消费者是谁,消费者也不需要关心发送者是谁。
基本概念认识
- 生产者:发送消息的程序
- 消费者:接收消息的程序
- 队列:存放消息的存储区域
- 交换机:消息路由核心组件,当生产者发送消息后,消息会首先到交换机,交换机会根据我们的配置将其路由到对应的队列中
安装
docker安装
# 3.13 是版本号,可以用自己适合的
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.13-management
这个比较简单,暂时不多写了
在基于 RPM 的 Linux 上安装
官方给了好几种安装方式,不过官方强烈推荐使用 Yum 存储库从 Cloudsmith.io 镜像安装软件包。这里就使用这种方式。参考文档:https://www.rabbitmq.com/docs/install-rpm#cloudsmith
-
Yum 将验证其安装的任何软件包的签名,因此该过程的第一步是导入签名密钥。(服务器在国内的话,操作可能会比较慢)
## primary RabbitMQ signing key rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc' ## modern Erlang repository rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key' ## RabbitMQ server repository rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key' -
在
/etc/yum.repos.d/目录下添加.repo文件(例如rabbitmq.repo)。注意要与系统的发行版对应。我的系统是el9的,所以我们可以创建文件:/etc/yum.repos.d/rabbitmq.repo并在其中添加如下内容:# In /etc/yum.repos.d/rabbitmq.repo ## ## Zero dependency Erlang RPM ## [modern-erlang] name=modern-erlang-el9 # uses a Cloudsmith mirror @ yum.novemberain.com. # Unlike Cloudsmith, it does not have any traffic quotas baseurl=https://yum1.novemberain.com/erlang/el/9/$basearch https://yum2.novemberain.com/erlang/el/9/$basearch https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/9/$basearch repo_gpgcheck=1 enabled=1 gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key gpgcheck=1 sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 pkg_gpgcheck=1 autorefresh=1 type=rpm-md [modern-erlang-noarch] name=modern-erlang-el9-noarch # uses a Cloudsmith mirror @ yum.novemberain.com. # Unlike Cloudsmith, it does not have any traffic quotas baseurl=https://yum1.novemberain.com/erlang/el/9/noarch https://yum2.novemberain.com/erlang/el/9/noarch https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/9/noarch repo_gpgcheck=1 enabled=1 gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc gpgcheck=1 sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 pkg_gpgcheck=1 autorefresh=1 type=rpm-md [modern-erlang-source] name=modern-erlang-el9-source # uses a Cloudsmith mirror @ yum.novemberain.com. # Unlike Cloudsmith, it does not have any traffic quotas baseurl=https://yum1.novemberain.com/erlang/el/9/SRPMS https://yum2.novemberain.com/erlang/el/9/SRPMS https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/9/SRPMS repo_gpgcheck=1 enabled=1 gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc gpgcheck=1 sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 pkg_gpgcheck=1 autorefresh=1 ## ## RabbitMQ Server ## [rabbitmq-el9] name=rabbitmq-el9 baseurl=https://yum2.novemberain.com/rabbitmq/el/9/$basearch https://yum1.novemberain.com/rabbitmq/el/9/$basearch https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/9/$basearch repo_gpgcheck=1 enabled=1 # Cloudsmith's repository key and RabbitMQ package signing key gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc gpgcheck=1 sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 pkg_gpgcheck=1 autorefresh=1 type=rpm-md [rabbitmq-el9-noarch] name=rabbitmq-el9-noarch baseurl=https://yum2.novemberain.com/rabbitmq/el/9/noarch https://yum1.novemberain.com/rabbitmq/el/9/noarch https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/9/noarch repo_gpgcheck=1 enabled=1 # Cloudsmith's repository key and RabbitMQ package signing key gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc gpgcheck=1 sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 pkg_gpgcheck=1 autorefresh=1 type=rpm-md [rabbitmq-el9-source] name=rabbitmq-el9-source baseurl=https://yum2.novemberain.com/rabbitmq/el/9/SRPMS https://yum1.novemberain.com/rabbitmq/el/9/SRPMS https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/9/SRPMS repo_gpgcheck=1 enabled=1 gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key gpgcheck=0 sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 pkg_gpgcheck=1 autorefresh=1 type=rpm-md -
使用 dnf (yum) 命令安装软件包
# 更新包元数据 dnf update -y # 从标准存储库安装依赖项 dnf install socat logrotate -y # 安装 Erlang 和 RabbitMQ dnf install -y erlang rabbitmq-server
启动
# 启动
systemctl start rabbitmq-server
# 查看状态
systemctl status rabbitmq-server
# 关闭
systemctl stop rabbitmq-server
# 重启
systemctl restart rabbitmq-server
# 开机启动守护进程(需要管理员身份)
systemctl enable rabbitmq-server
启动成功后,RabbitMQ 默认监听5672端口。
参考文章:
https://kucw.io/blog/2020/11/rabbitmq/
https://www.rabbitmq.com/tutorials
💬 评论 0
还没有评论,快来抢沙发吧~