RabbitMQ(一):最新版rabbitmq安装

目录

  • 1 简介
    • 1.1特性及好处
  • 2 安装
    • 2.1 Ubuntu22.04 apt安装最新rabbitmq
      • 1、一键部署
      • 2、验证
      • 3、RabbitMQWeb管理界面及授权操作
      • 4、添加远程用户
      • 5、一些常用命令
    • 2.2 Docker安装RabbitMQ - Ubuntu22.04
      • 1、安装docker
      • 2、启动rabbitmq

1 简介

RabbitMQ是一个开源的遵循AMQP协议实现的基于Erlang语言编写,支持多种客户端(语言),用于在分布式系统中存储消息,转发消息,具有高可用高可扩性,易用性等特征。

1.1特性及好处

好处:

  • 开源
  • 平台和供应商无关性——作为实现了具有平台和供应商无关性的高级消息队列协议(Advanced Message Queuing Protocol,AMQP)规范的一种消息代理服务器,RabbitMQ为几乎全部开发语言提供了客户端工具并能运行在所有主流计算机平台上。
  • 轻量级——RabbitMQ是轻量级的
  • 面向大多数现代语言的客户端开发库——RabbitMQ可以实现不同的开发语言之间进行跨操作系统和环境的数据共享
  • 灵活控制消息通信的平衡性——主要体现在消息吞吐量和性能上
  • 高延迟性环境插件——RabbitMQ既支持在低延迟环境下的消息通信机制,也提供了针对如互联网的高延迟环境下的插件。这就使得RabbitMQ可以在同一个本地网络或者在跨越多个数据中心的共享互联(federated)机制下构建消息集群。
  • 多层安全——在RabbitMQ的多个层次中包含着安全性设计。客户端连接可以通过使用SSL通信和客户端证书验证以提高安全性。在虚拟主机(virtual-host)层可以管理用户访问,从而在较高层次实现消息和资源的隔离。另外,通过配置可以使用正则表达式模式匹配的方式控制从队列中读取消息和把消息写入交换器的过程。最后,使用插件可与类似LDAP的外部认证系统进行集成。

RabbitMQ中的两个最基本的特性:实现语言(Erlang)和所基于的模型(高级消息队列模型)

2 安装

参考:https://www.rabbitmq.com/install-debian.html

2.1 Ubuntu22.04 apt安装最新rabbitmq

RabbitMQ需要Erlang/OTP才能运行。标准Debian和Ubuntu存储库中的Erlang/OTP包可能过时,并且不受现代RabbitMQ版本的支持。
最新的Erlang/OTP版本系列可以从许多替代的apt存储库中获得。此处使用的是cloudsmith中的rabbitmq apt库

1、一键部署

vim install_cloudsmith.sh#!/bin/sh# 安装基本依赖项
# apt-transport-https:启用apt HTTPS传输
# 为了让apt能够从Cloudsmith下载RabbitMQ和Erlang包, apt-transport-https包必须安装:
sudo apt-get install curl gnupg apt-transport-https -y# 添加key
## Team RabbitMQ's main signing key
curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null
## Community mirror of Cloudsmith: modern Erlang repository
curl -1sLf https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg > /dev/null
## Community mirror of Cloudsmith: RabbitMQ repository
curl -1sLf https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.9F4587F226208342.gpg > /dev/null# 配置RabbitMQ源
# 此处需要注意:jammy对应的是ubuntu22.04,不同系统的版本号不同,根据自己系统进行配置:具体对应关系在方图中
## Add apt repositories maintained by Team RabbitMQ
sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
## Provides modern Erlang/OTP releases
##
deb [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main# another mirror for redundancy
deb [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main## Provides RabbitMQ
##
deb [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main# another mirror for redundancy
deb [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
EOF# 更新源
## Update package indices
sudo apt-get update -y# 安装Erlang包
# RabbitMQ是采用 Erlang语言开发的,所以系统环境必须提供 Erlang环境,需要是安装 Erlang
## Install Erlang packages
sudo apt-get install -y erlang-base \erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \erlang-runtime-tools erlang-snmp erlang-ssl \erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl# 安装rabbitmq
## Install rabbitmq-server and its dependencies
sudo apt-get install rabbitmq-server -y --fix-missing

不同系统的版本号不同,根据需要进行配置:
在这里插入图片描述

2、验证

# 可以查看Erlang版本
erl -v
######输出#####
Erlang/OTP 24 [erts-12.2.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [jit]Eshell V12.2.1  (abort with ^G)
1>#
systemctl status rabbitmq-server.service

在这里插入图片描述

3、RabbitMQWeb管理界面及授权操作

默认情况下,rabbitmq没有安装web端的客户端软件,需要安装才可以生效

# 打开RabbitMQWeb管理界面插件
rabbitmq-plugins enable rabbitmq_management
# 管理界面的默认端口是:15672
# 启动之后直接访问:ip:port######## 以下是输出内容
Enabling plugins on node rabbit@con02:
rabbitmq_management
The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch
Applying plugin configuration to rabbit@con02...
The following plugins have been enabled:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch

rabbitmqrabbitmq有一个默认的账号密码guest,但该情况仅限于本机localhost进行访问,所以需要添加一个远程登录的用户
在这里插入图片描述

4、添加远程用户

# 添加用户
# rabbitmqctl add_user 用户名 密码
rabbitmqctl add_user admin 12345# 设置用户角色,分配操作权限
# rabbitmqctl set_user_tags 用户名 角色
rabbitmqctl set_user_tags admin administrator# 为用户添加资源权限(授予访问虚拟机根节点的所有权限)
# rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"#角色有四种:
# administrator
# monToring
# policymaker
# managment

此处创建一个admin用户,角色为 administrator,拥有所有权限
在这里插入图片描述

创建完成之后即可用该用户进行前台登录
在这里插入图片描述

5、一些常用命令

# 添加用户
rabbitmqctl add_user 用户名 密码# 设置用户角色,分配操作权限
rabbitmqctl set_user_tags 用户名 角色# 为用户添加资源权限(授予访问虚拟机根节点的所有权限)
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"# 修改密码
rabbitmqctl change_ password 用户名 新密码# 删除用户
rabbitmqctl delete_user 用户名# 查看用户清单
rabbitmqctl list_users# 查看帮助
rabbitmqctl help set_permissions

2.2 Docker安装RabbitMQ - Ubuntu22.04

1、安装docker

# 更新
sudo apt update# 安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release# 运行下列命令添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 添加 Docker 官方库:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 更新 Ubuntu 源列表:
sudo apt update# 安装指定版本的docker
# 检查可以安装的docker版本库
apt-cache madison docker-ce# 挑选上面列表中的任何版本进行安装
sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io -yq# 查看docker是否运行
systemctl status docker# 查看版本
docker version# 添加镜像加速
cat > /etc/docker/daemon.json <<EOF
{"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"],"registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
}
EOFsystemctl restart docker
systemctl status docker

2、启动rabbitmq

# latest RabbitMQ 3.12
docker run -itd --rm --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=12345 -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management#  -e RABBITMQ_DEFAULT_USER:设置环境变量,用户名
#  -e RABBITMQ_DEFAULT_PASS:设置环境变量,密码
#  -p hostPort:containerdPort:主机端口:容器端口

登录前台页面:ip:15672,用户名/密码:admin/12345
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/443997.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大厂AI课学习笔记】1.3 人工智能产业发展(3)

1.3.1 供给侧 技术层面&#xff1a;从实验室走向大规模的商用。 数据层面&#xff1a;数据正式成为重要的生产要素。 市场&#xff1a;供需互促的正向市场环境建立。 资本&#xff1a;走出炒作泡沫&#xff0c;聚焦价值领域。 平台&#xff1a;大厂普遍开放生态。 MORE&am…

js中原型和原型链的特点

文章目录 一、原型二、原型链三、总结参考文献 一、原型 JavaScript 常被描述为一种基于原型的语言——每个对象拥有一个原型对象 当试图访问一个对象的属性时&#xff0c;它不仅仅在该对象上搜寻&#xff0c;还会搜寻该对象的原型&#xff0c;以及该对象的原型的原型&#x…

[C++历练之路]C++多态底层逻辑知多少

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 前言&#x1f354;&#xff1a;学习了继承与多态&#xff0c;我相信大家对其底层的运用逻辑非常之好奇&#xff0c;今天我们就来探索一下多态中的底层逻辑&#xff0c;话不多说&#xff0c;我们现在开始&#xff01; 目…

BUUCTF-Real-[ThinkPHP]5-Rce

1、ThinkPHP检测工具 https://github.com/anx0ing/thinkphp_scan 漏洞检测 通过漏洞检测&#xff0c;我们发现存在rce漏洞&#xff01; 2、漏洞利用 ---- [!] Name: Thinkphp5 5.0.22/5.1.29 Remote Code Execution VulnerabilityScript: thinkphp5022_5129.pyUrl: http://n…

python打造光斑处理系统4:裁切光斑感兴趣区域

文章目录 图像裁切给定坐标裁切手动阈值裁切 光斑处理&#xff1a;python处理高斯光束的图像 光斑处理系统&#xff1a;程序框架&#x1f31f;打开图像&#x1f31f;参数对话框/伪彩映射 图像裁切 一般来说&#xff0c;光斑只占图像很小一部分&#xff0c;为了更好的观感和更…

剪映使用_

目录 导出的视频大小过大 Adobe Premiere Pro 2022导入视频文件压缩类型不支持 导出的视频大小过大 https://www.bilibili.com/video/BV1mt4y1R75Q Adobe Premiere Pro 2022 教程&#xff1a; https://mp.weixin.qq.com/s/gwYXDCD_iCQTa78tlG6Puw Adobe premiere 安装包下载&…

SpringCloud Gateway(4.1.0) 返回503:原因分析与解决方案

文章目录 一、环境版本二、原因分析三、解决方案 一、环境版本 Versionspring-cloud-dependencies2023.0.0spring-cloud-starter-gateway4.1.0Nacosv2.3.0 二、原因分析 在 Spring Cloud Gateway 的早期版本中&#xff0c;Ribbon 被用作默认的负载均衡器。随着Spring Cloud的…

PHP的线程安全与非线程安全模式选哪个

曾经初学PHP的时候也很困惑对线程安全与非线程安全模式这块环境的选择&#xff0c;也未能理解其中意。近来无意中看到一个教程对线程安全&#xff08;饿汉式&#xff09;&#xff0c;非线程安全&#xff08;懒汉式&#xff09;的描述&#xff0c;虽然觉得现在已经能够很明了透彻…

matplotlib多子图共享坐标轴

文章目录 共用坐标添加共享轴灰度直方图 共用坐标 当一个图像中有多个子图时&#xff0c;若这些子图坐标的含义相同&#xff0c;那么省略一些坐标可以让图像更加简洁。在matplotlib中&#xff0c;通过sharex或者sharey可以起到共享x或y轴坐标的作用。示例如下 import numpy a…

嵌入式学习 Day15

一. 指针类型辨析 二. 传参辨析 三. 结构体 1.定义结构体 练习&#xff1a; 2. 结构体大小 8&#xff0c;12

Linux 内核学习1. 编译并启动一个最小化系统

Linux 内核学习1. 编译并启动一个最小化系统 一、Linux内核简介1. Linux 内核介绍2. Linux内核主要的作用 二、编译内核主要的步骤三、编译过程1. 准备环境2. 安装编译工具和依赖项3. 下载源码4. 配置内核配置功能选项命令行配置图形化配置默认配置 5. 编译内核6. 构建轻量化工…

ElementUI Form:Checkbox 多选框

ElementUI安装与使用指南 Checkbox 多选框 点击下载learnelementuispringboot项目源码 效果图 el-checkbox.vue 页面效果图 项目里el-checkbox.vue代码 <script> const cityOptions [上海, 北京, 广州, 深圳] export default {name: el_checkbox,data() {return …