Centos7单节点部署RabbitMQ

简介: Centos7单节点部署RabbitMQ
🎈 作者:互联网-小啊宇
🎈 简介: CSDN 运维领域创作者。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护等领域。
🎈 博客首页: 互联网-小啊宇
🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬

简介

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

历史

Rabbit科技有限公司开发了RabbitMQ,并提供对其的支持。起初,Rabbit科技是LSHIFT和CohesiveFT在2007年成立的合资企业,2010年4月被VMware旗下的SpringSource收购。RabbitMQ在2013年5月成为GoPivotal的一部分。

基本概念

RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。
RabbitMQ服务支持下列操作系统:
Linux 、WindowsNT 到 10 Windows、 Server2003 到 2016、 macOS、 Solaris、 FreeBSD 、 TRU64、 VxWorks
RabbitMQ支持下列编程语言:
Python、 Java 、Ruby、 PHP、 C# 、JavaScript 、Go、 Elixir、 Objective-C 、Swift

主要特性

可伸缩性:集群服务
消息持久化:从内存持久化消息到硬盘,再从硬盘加载到内存

安装

Erlang与RabbitMQ,安装路径都应不含空格符。
Erlang使用了环境变量HOMEDRIVE与HOMEPATH来访问配置文件.erlang.cookie,应注意这两个环境变量的有效性。需要设定环境变量ERLANG_HOME,并把%ERLANG_HOME%\bin加入到全局路径中。
RabbitMQ使用本地computer name作为服务器的地址,因此需要注意其有效性,或者直接解析为127.0.0.1
可能需要在本地网络防火墙打开相应的端口。

在这里插入图片描述

AMQP:高级消息队列协议,是应用协议开放的标准,为面向消息中间件设计,它可以使用客户端和对应消息队列进行交互,消息中间件从发布者哪里接收消息,然后转发给消费者(处理消息的应用)。

消息列队: 处理的事件: 流量消峰:秒杀的过程中,常用消息队列来防止后端服务器宕机, 异步处理:数据模型 架构解耦:

消息队列的种类: Redis:后端数据消息队列 MemcacheQ:完美兼容 memcache 多台队列 并发性能好
MSMQ:消息最大的载体,4M,只有发送和接收功能 ZeroMQ:号称最快的消息队列,高吞吐,低延迟,在金融方面用的比较多
Kafka:支持快速的持久化,异步收取,数据量大,高吞吐 ActiveMQ:java的中间力量。
RabbitMQ:开源的,最早的消息队列,最稳定,速度慢,扩展性能比较差,消息封装之后比较大。

RabbitMQ:
在这里插入图片描述

Rabbitmq server,消息队列服务,用于接收生产者产生的消息,并将消息分配给消费者
Producer 生产者,生产消息,消息分为两个部分。 标签和数据,标签用于交换匹配

Consumer 消费者,用来消费队列分配的消息,处理完之后要给队列发送ack回应。
消息ack机制:用来判断哪些消息被消费了,如果检测到被消费了,那么这个消息就会被删除,如果所有的consumer没有消费,这个消息就会回转,再次等带消费。

Connection 生产者和消费者与消息队列的tcp连接
Channel 虚拟通道,建立在tcp之上。
Exchange 交换机,会根据自身的匹配规则交给合适的queue
Exchange的匹配规则:

 #    Fanout 生产者发送过来的消息交给所有的对列   
 # Direct  进行精准匹配
 # Topic 进行模糊匹配 

Queue 消息的载体,队列
Vhost 虚拟主机,一个vhost相当于一个rabbit server ,有单独的队列和交换机。

集群模式:
普通模式:将生产者的消息放在单独的节点上。
镜像模式:将生产者的消息存放在多个节点上。
镜像模式的三个选项:

 # all 将产生的消息放在所有的节点上。 
# Exactly  将产生的消息放在指定数量的节点上。
# Nodes 将产生的消息放在指定的节点上。

单节点部署RabbitMQ

环境准备

IP 版本 服务
192.168.1.40 CentOS Linux release 7.6.1810 (Core) rabbitmq-server(3.6.15)、erlang(18.1)

各版本RabbitMQ、Erlang安装包下载链接

RabbitMQ下载链接:
https://github.com/rabbitmq/rabbitmq-server/releases
Erlang下载链接:
https://github.com/rabbitmq/erlang-rpm/releases

此次环境RabbitMQ、Erlang安装包链接🔗

链接:https://pan.baidu.com/s/18ICeCho2kYajfH6lL1xa7w 
提取码:8z7v 
复制这段内容后打开百度网盘手机App,操作更方便哦

安装基本命令

[root@localhost ~]# yum -y install vim net-tools lrzsz net-tools mkae cmake gcc-c++

安装RabbitMQ、Erlang

[root@localhost ~]# rpm -ivh erlang-18.1-1.el7.centos.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:erlang-18.1-1.el7.centos         ################################# [100%]
[root@localhost ~]# yum -y install socat
[root@localhost ~]# rpm -ivh rabbitmq-server-3.6.15-1.el7.noarch.rpm 
警告:rabbitmq-server-3.6.15-1.el7.noarch.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 6026dfca: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:rabbitmq-server-3.6.15-1.el7     ################################# [100%]

启动服务

[root@localhost ~]# systemctl start rabbitmq-server

查看状态

[root@localhost ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@localhost
[{nodes,[{disc,[rabbit@localhost]}]},
 {running_nodes,[rabbit@localhost]},
 {cluster_name,<<"rabbit@localhost">>},
 {partitions,[]},
 {alarms,[{rabbit@localhost,[]}]}]

关闭防火墙、沙盒

[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld && setenforce 0
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

添加插件

[root@localhost ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  amqp_client
  cowlib
  cowboy
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@localhost... started 6 plugins.

添加当前登陆的用户,并将这个用户设为管理员

[root@localhost ~]# rabbitmqctl delete_user guest
Deleting user "guest"
[root@localhost ~]# rabbitmqctl add_user test 123.com
Creating user "test"
[root@localhost ~]# rabbitmqctl set_user_tags test administrator
Setting tags for user "test" to [administrator]

访问

http://192.168.1.40:15672/

在这里插入图片描述
在这里插入图片描述

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
3月前
|
物联网 Linux 开发者
快速部署自己私有MQTT-Broker-下载安装到运行不到一分钟,快速简单且易于集成到自己项目中
本文给物联网开发的朋友推荐的是GMQT,让物联网开发者快速拥有合适自己的MQTT-Broker,本文从下载程序到安装部署手把手教大家安装用上私有化MQTT服务器。
990 5
|
4月前
|
消息中间件 存储 Kafka
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
2903 9
 一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
|
4月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
266 18
|
5月前
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
511 20
|
8月前
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
1098 91
|
6月前
|
消息中间件 Java 中间件
RocketMQ实战—2.RocketMQ集群生产部署
本文主要介绍了大纲什么是消息中间件、消息中间件的技术选型、RocketMQ的架构原理和使用方式、消息中间件路由中心的架构原理、Broker的主从架构原理、高可用的消息中间件生产部署架构、部署一个小规模的RocketMQ集群进行压测、如何对RocketMQ集群进行可视化的监控和管理、进行OS内核参数和JVM参数的调整、如何对小规模RocketMQ集群进行压测、消息中间件集群生产部署规划梳理。
RocketMQ实战—2.RocketMQ集群生产部署
|
10月前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
159 6
|
11月前
|
Oracle 关系型数据库 MySQL
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
|
消息中间件 Linux
centos7 yum快速安装rabbitmq服务
centos7 yum快速安装rabbitmq服务
407 0
|
消息中间件 中间件 微服务
RabbitMQ 入门简介及安装
RabbitMQ 入门简介及安装
284 0