linux centos rabbitmq3.7.5 一键安装部署

news2024/11/19 21:23:05

linux centos rabbitmq3.7.5 一键安装部署

  • 一、基础理论
  • 二、kafka和rocketmq、rabbitmq的区别
  • 三、下载所需安装包
  • 四、一键安装

一、基础理论

RabbitMQ是一个实现了高级消息队列协议(AMQP)的开源消息代理软件,其作用主要体现在以下几个方面:
1、消息传递:
RabbitMQ允许应用程序通过消息传递进行通信,这使得不同的应用程序可以在不同的语言和操作系统之间进行通信。
它支持多种编程语言,如Python、Java、Ruby、PHP、C#、JavaScript、Go、Elixir、Objective-C和Swift等,使得不同技术栈之间的通信变得简单高效。

2、消息路由:
RabbitMQ能够将消息从一个应用程序路由到另一个应用程序,这可以通过将消息发送到交换机(Exchange)和队列(Queue)来完成。
它支持多种路由模式,如发布/订阅模式(Publish/Subscribe)、路由模式(Routing)和主题模式(Topics),以满足不同场景下的消息路由需求。

3、消息队列:
RabbitMQ可以保存消息,直到消费者准备好接收它们。这使得应用程序能够以异步方式处理消息,提高了系统的响应速度和吞吐量。
通过消息队列,应用程序可以解耦不同的业务逻辑,降低系统之间的耦合度,提高系统的可扩展性和可维护性。

4、消息持久化:
RabbitMQ支持从内存持久化消息到硬盘,再从硬盘加载到内存,确保消息的可靠性和持久性。
这使得即使在系统崩溃或重启的情况下,也能保证消息不会丢失,从而保证了系统的稳定性和可靠性。

5、集群和故障转移:
RabbitMQ可以构建在开放电信平台框架上的集群和故障转移机制,提高了系统的可用性和容错能力。
通过集群,RabbitMQ可以实现消息的负载均衡和高可用性,确保系统能够处理大量的并发请求。

6、集成与扩展:
RabbitMQ可以与多种框架和工具进行集成,如Spring框架、Docker容器等,使得在现有系统中集成RabbitMQ变得更加容易。
同时,RabbitMQ也提供了丰富的插件和扩展机制,可以根据实际需求进行定制和扩展。

7、应用场景:
RabbitMQ在多个场景下都有广泛的应用,如日志收集、消息通讯、解耦系统组件、异步任务处理等。
在微服务或分布式系统架构中,RabbitMQ提供了一种解耦的方式来确保消息的可靠传输,提高了系统的可维护性和可扩展性。
综上所述,RabbitMQ作为一个开源的消息代理软件,通过其强大的消息传递、路由、队列和持久化等功能,为应用程序之间的通信提供了可靠、高效和可扩展的解决方案。

二、kafka和rocketmq、rabbitmq的区别

Kafka、RocketMQ和RabbitMQ都是流行的消息队列系统,它们在功能、性能、使用场景等方面存在一定的差异。以下是关于它们之间区别的详细比较:

1、语言与开发
Kafka:采用Scala语言开发,由Linkedin公司开发并贡献给Apache基金会,是一个顶级的开源项目。
RocketMQ:采用Java语言开发。
RabbitMQ:采用Erlang语言开发,并提供了多种语言的客户端支持。

2、吞吐量与性能
Kafka:设计目标是以时间复杂度为O(1)的方式提供消息持久化能力,即使在TB级数据上也能保持常数时间的访问性能。支持批量处理和磁盘顺序读写,使得其吞吐量极高。
RocketMQ:也具有较高的吞吐量,但在某些场景下可能稍逊于Kafka。
RabbitMQ:吞吐量相对较低,但在一些对延迟要求极高的场景下表现良好。

3、可靠性与持久化
Kafka:消息持久化到磁盘,并通过replication防止数据丢失。Kafka支持同步和异步的消息复制策略。
RocketMQ:支持消息的高可靠性,通过同步双写技术可以完全避免单点故障。
RabbitMQ:通过确认机制、支持事务、委托和备份交换器等机制保证消息的可靠性。

4、使用场景
Kafka:主要应用于大数据实时处理领域,如基于Hadoop的批处理系统、低延迟的实时系统、Spark/Flink流式处理引擎等。
RocketMQ:在互联网金融、电商、物流等领域有广泛应用,支持事务消息和回溯消费等特性。
RabbitMQ:适用于实时性要求较高的场景,如在线游戏、Web应用等。RabbitMQ还支持多种消息路由和过滤机制。

5、系统架构与扩展性
Kafka:基于Zookeeper协调的分布式消息中间件系统,支持分布式消费和扩展。
RocketMQ:采用NameServer和Broker的架构,NameServer负责路由信息的维护,Broker负责消息的存储和转发。
RabbitMQ:使用Erlang编写,具有轻量级和易于扩展的特点。它支持多种集群模式,如镜像队列等。

6、总结
Kafka、RocketMQ和RabbitMQ各有其优势和适用场景。Kafka在大数据实时处理领域表现出色,RocketMQ在互联网金融等领域有广泛应用,而RabbitMQ则适用于实时性要求较高的场景。在选择消息队列系统时,需要根据具体的业务需求和场景进行权衡和选择。

三、下载所需安装包

1、安装Erlang
Erlang RPM包下载地址:https://github.com/rabbitmq/erlang-rpm/releases/tag/v20.3.6
在这里插入图片描述
2、安装rabbitmq
版本地址https://github.com/rabbitmq/rabbitmq-server/releases
rpm下载地址
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.5
在这里插入图片描述
3、socat下载
https://rpmfind.net/linux/RPM/centos/7.9.2009/x86_64/Packages/socat-1.7.3.2-2.el7.x86_64.html
在这里插入图片描述
4、密钥文件
cat rabbitmq-release-signing-key.asc

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=tsX2
-----END PGP PUBLIC KEY BLOCK-----

5、安装包文件位置
在这里插入图片描述

四、一键安装

1、安装脚本位置
在这里插入图片描述

cat install-rabbitmq.sh
#!/bin/bash
script_dir=$(cd $(dirname $0);pwd)
log_info(){
    content="[ INFO ] $(date "+%F %H:%M:%S") $1"
    echo -e "\033[32m"  ${content}  "\033[0m" >>$script_dir/install.log
    echo -e "\033[32m"  ${content}  "\033[0m" 
}
log_error(){

    if [ "$?" != 0 ];then
        content="[ ERROR ] $(date "+%F %H:%M:%S") $1"
        echo -e "\033[31m" ${content} Error"\033[0m"\" >>$script_dir/install.log
        echo -e "\033[31m" ${content} Error"\033[0m"\"
        exit -1
    fi
}

admin_passwd="admin@LDBa1"
bpm_passwd="ldb@LDB1"
cd $script_dir/../package/rabbitmq
log_info "install rabbitmq socat erlang rpm.."
sudo rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm 
sudo rpm -ivh erlang-20.3.6-1.el7.centos.x86_64.rpm
#log_error 'rpm package install failed'
sudo rpm --import rabbitmq-release-signing-key.asc
log_info "install rabbitmq-server"
sudo rpm -ivh rabbitmq-server-3.7.5-1.el7.noarch.rpm

#log_error "rabbitmq-server install failed"


log_info "start rabbitmq-server."
sudo systemctl enable rabbitmq-server
sudo systemctl start rabbitmq-server
log_error "start rabbitmq-server failed"
log_info "start rabbitmq management."
sudo rabbitmq-plugins enable rabbitmq_management

log_info "add rabbimt admin user"
sudo rabbitmqctl add_user admin $admin_passwd
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

log_info "add rabbimt bpm user"
sudo rabbitmqctl add_user bpm $bpm_passwd
sudo rabbitmqctl set_permissions -p / ldb ".*" ".*" ".*"

sudo systemctl status rabbitmq-server
log_info "install rabbitmq done."

7、启动完成样例
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K8S -理解StatefulSet - 部署有状态应用

什么是 有状态服务和 无状态服务 有状态服务(Stateful Service): 有状态服务是指在处理请求期间维护和跟踪用户状态或会话信息的服务。这意味着服务在多个请求之间保持状态,并且需要在请求之间共享和使用这些状态信息。通常&…

常微分方程算法之编程示例五(阿当姆斯法)

目录 一、研究问题 二、C代码 三、计算结果 一、研究问题 本节我们采用阿当姆斯法(Adams法)求解算例。 阿当姆斯法的原理及推导请参考: 常微分方程算法之阿当姆斯法(Adams法)_四步四阶adams显格式;三步四阶adams隐…

【STM32】外部中断

1.EXTI简介 外部中断/事件控制器(EXTI)管理了控制器的23个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。 EXTI可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及…

Spring Ai入门

SpringAI是一个AI工程应用框架,旨在将Spring生态系统的设计原则(如可移植性和模块化设计)应用于AI领域。它推广使用Plain Old Java Object(POJO)作为AI应用程序的构建块,从而为Java开发者提供了一种更简洁的…

JavaScript中常用数据类型做布尔值(Boolean)转换

一、前言 二、示例 1、String转Boolean 2、Number转Boolean 3、NaN、Null、undefined 转Boolean 4、Object转Boolean 5、Array转Boolean 6、Symbol转Boolean 三、总结 四、思考 一、前言 JavaScript中,经常需要对一些值进行boolean判断,根据判…

【efinix】efinity如何安装官方补丁patch

efinix官网可以下载efinity的官方补丁。 下载 efinity-2023.2.307.5.10-windows-x64-patch.zip 解压缩补丁zip 压缩包内容 files/ : updated files to be copied into the Efinity installation run.sh : patch installation script (Linux on…

【Nginx】静态资源访问配置

nginx 静态资源访问配置 Nginx 静态资源访问配置 通过该片文章,你能了解图中的内容: 实际问题 Nginx 应该怎么写,才能匹配这个图片资源路径? http://47.120.10.110:7001/public/images/picture.jpg解决方案 你需要配置一个 N…

Redis-Geospatial数据类型及其常用命令详解

1.Redis概述 2.Geospatial 数据类型 Redis 的 Geospatial 数据类型可以存储地理空间的位置信息和执行地理相关的查询。比如查找指定半径内的所有位置、计算两个位置之间的距离等。Redis 使用有序集合 (sorted sets) 来实现这些功能。 3.存储和性能 Geospatial 数据在 Redis 中…

2023 年度国家科学技术奖励公布

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

php goto解密脚本源码

php goto解密脚本源码 源码下载:https://download.csdn.net/download/m0_66047725/89426171 更多资源下载:关注我。

【数学建模】 函数极值与规划模型

文章目录 函数极值与规划模型1. 线性代数和线性规划的联系1.1 线性代数的基本概念1.2 线性规划的基本概念1.3 线性代数与线性规划的联系矩阵和向量线性方程组单纯形法内点法凸优化 1.4 例子 2. Numpy有关矩阵运算示例2.1 矩阵的创建2.2 矩阵的基本运算2.3 矩阵的合并2.4 矩阵的…

.NET C# 使用OpenCV实现人脸识别

.NET C# 使用OpenCV实现模型训练、人脸识别 码图~~~ 1 引入依赖 OpenCvSHarp4 - 4.10.0.20240616 OpenCvSHarp4.runtime.win - 4.10.0.20240616 2 人脸数据存储结构 runtime directory | face | {id}_{name} | *.jpg id - 不可重复 name - 人名 *.jpg - 人脸照片3 Demo 3.…

搞定求职难题:工作岗位列表+简历制作工具 | 开源专题 No.75

SimplifyJobs/New-Grad-Positions Stars: 8.5k License: NOASSERTION 这个项目是一个用于分享和跟踪美国、加拿大或远程职位的软件工作机会列表。该项目的核心优势和关键特点如下: 自动更新新岗位信息便捷地提交问题进行贡献提供一键申请选项 BartoszJarocki/cv…

SR655 OCP3 网卡Legacy PXE 轮循设置

1、更改UEFI Boot Mode为UEFI,保存重启服务器,再次进入UEFI界面调整如下图例 更改如下所有网卡legacy 为PXE。后将Boot Mode 更改为legacy,保存退出。 如下图例操作依次更改所有网卡口 2、步骤1,更改Boot Mode 为Legacy保存退出重启服器后&…

SAP揭秘者-在QM标准功能增加取消UD的功能第二季

文章摘要: 上篇文章我已经给大家介绍怎么开发两个程序来取消UD,但是上篇文章中有提到这个时候去直接执行ZQEVAC40程序去取消物料凭证 则会报错,那么为了解决这个报错,我们需要更改后台配置。 接下来我给大家讲后台配置该怎么配置&…

Jetpack架构组件_Navigaiton组件_1.Navigaiton切换Fragment

1.Navigation主要作用 方便管理Fragment (1)方便我们管理Fragment页面的切换 (2)可视化的页面导航图,便于理清页面间的关系。 (3)通过destination和action完成页面间的导航 (4&a…

Docker 命令——安全

我们将学习两个命令。第一个命令是 docker container run 命令,这样你就能看到使用该命令的一些好处。其次,我们将看看 docker container diff 命令,你可以用它来查看在已有的镜像基础上做了什么。让我们看看如何使用这两个命令来确保容器的安…

【ARM-Linux篇】项目:智能家居

一、项目概述 •项目功能 通过语音控制客厅灯、卧室灯、风扇、人脸识别开门等,可以进行火灾险情监测,可以并且实现Sockect发送指令远程控制各类家电等 •项目描述 全志H616通过串口连接各模块硬件,检测语音的识别结果,分析语音识别的结果来对家电设备进行控制。摄像头拍…

山东大学多核并行2024年回忆版

2024.6.13回忆版 矩阵向量乘不可整除代码 集合通信与点对点通信的区别 块划分、循环划分、循环块划分(14个向量,4个进程) 按行访问还是按列访问快 SISD系统问题 循环依赖问题 问题:为什么不能对这个循环并行化&#xff0…

Vue移动端动态表单生成组件

FormCreate 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持6个UI框架,适配移动端,并且支持生成任何 Vue 组件。内置20种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定。 帮助文档 | 源码下载…