RabbitMQ入门指南(一):初识与安装

简介: RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了消息队列、RabbitMQ简介及其安装步骤等内容。

前言

RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了消息队列、RabbitMQ简介及其安装步骤等内容。


一、消息队列介绍

1.同步调用和异步调用

同步调用:

同步调用是一种程序执行方式,它要求调用函数必须等待被调用的函数执行完毕后,才能继续执行后续代码。在同步调用中,调用方会阻塞等待被调用方的返回结果。这种方式在某些情况下可能会带来性能问题,因为它会占用计算资源,使得程序执行效率降低。

例如,在OpenFeign中,当一个服务调用另一个服务时,如果采用同步调用,那么调用方必须等待被调用方的服务响应后才能继续执行后续代码。这种等待可能会导致调用方的线程阻塞,从而降低程序的性能。

异步调用:

异步调用是一种程序执行方式,它允许调用函数在等待被调用的函数执行完毕的同时,继续执行后续代码。在异步调用中,调用方不会阻塞等待被调用方的返回结果,而是立即返回并继续执行后续代码。这种方式可以提高程序的效率,因为它可以释放计算资源,使得程序可以同时处理多个任务。

例如,在使用消息队列时,当一个消费者从队列中获取一个消息并处理它时,如果采用异步调用,那么消费者可以在等待消息处理完成的同时,继续从队列中获取其他消息进行处理。这种方式可以提高程序的并发性能,因为它可以同时处理多个消息,而不会因为某个消息的处理而阻塞整个程序。

2.常见消息队列介绍

RabbitMQ ActiveMQ RocketMQ Kafka
公司 Rabbit Apache Alibaba Apache
开发语言 Erlang Java Java Scala&Java
可用性 一般
单机吞吐量 一般 非常高
消息延迟 微秒级 毫秒级 毫秒级 毫秒以内
消息可靠性 一般 一般

二、RabbitMQ简介及其安装步骤

1.RabbitMQ简介

RabbitMQ是一个开源的消息队列软件,旨在提供可靠的消息传递和消息队列功能。它采用AMQP协议作为其主要的消息传递协议,并提供了丰富的特性,包括发布/订阅模式、消息持久化、消息路由和多种客户端库支持等。RabbitMQ被广泛应用于分布式系统、微服务架构和异步通信等场景。

image.gif

官网地址:

https://www.rabbitmq.com/

2.RabbitMQ安装步骤(使用Docker)

(1) 创建网络

在Docker中创建一个名为"mall"的网络。这个网络是新的桥接网络,允许容器之间进行通信。此外,该命令还可以控制哪些容器可以连接到该网络,从而帮助管理容器之间的通信并隔离不同服务的网络流量。

docker network create mall

image.gif

运行图:

image.gif

(2) 使用Docker来安装并启动RabbitMQ

在终端输入如下命令:

docker run \
 -e RABBITMQ_DEFAULT_USER=admin \
 -e RABBITMQ_DEFAULT_PASS=123456 \
 -v mq-plugins:/plugins \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 --network mall \
 -d \
 rabbitmq:3.12-management

image.gif

具体参数的含义如下:

-e RABBITMQ_DEFAULT_USER=admin 设置RabbitMQ的默认用户名为admin
-e RABBITMQ_DEFAULT_PASS=123456 设置RabbitMQ的默认密码为123456
-v mq-plugins:/plugins 将主机的mq-plugins卷挂载到容器的/plugins目录,用于存放RabbitMQ插件
--name mq 指定容器名字为mq
--hostname mq 设置容器的主机名为mq
-p 15672:15672 将主机的15672端口映射到容器的15672端口,用于RabbitMQ的管理界面
-p 5672:5672 将主机的5672端口映射到容器的5672端口,用于RabbitMQ的AMQP协议
--network mall 将容器连接到名为mall的网络中
-d 在后台运行容器
rabbitmq:3.12-management 拉取并运行的镜像为RabbitMQ版本3.12,并带有管理界面插件

运行图:

image.gif

列出当前服务器中所有的容器,无论是否在运行:

docker ps -a

image.gif

如下图表示容器正常启动:

image.gif

若启动失败,请在启动Docker时添加参数'--privileged=true' (需要先删除之前那个容器)。

'--privileged=true'选项允许Docker容器享有主机的全部设备访问权限。这意味着,在容器内的进程将获得主机系统的权限,能够执行特权操作,例如挂载设备、修改网络配置等。使用该选项将增加容器的安全风险,因为容器内的进程可能会对主机系统执行更多的操作。因此,请谨慎使用'--privileged=true'选项。

docker run \
 --privileged=true \
 -e RABBITMQ_DEFAULT_USER=admin \
 -e RABBITMQ_DEFAULT_PASS=123456 \
 -v mq-plugins:/plugins \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 --network mall \
 -d \
 rabbitmq:3.12-management

image.gif

运行图:

image.gif

(3) 登录RabbitMQ管理控制台

访问http://10.0.0.100:15672/(将IP换为自己虚拟机的IP地址):

image.gif

输入之前设置的用户名和密码进行登录,登录界面如下:

image.gif


总结

RabbitMQ是一个开源的消息队列软件,旨在提供可靠的消息传递和消息队列功能。本文主要介绍了消息队列、RabbitMQ简介及其安装步骤等内容,希望对大家有所帮助。

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
22天前
|
消息中间件 Java Linux
RocketMQ的下载与安装(全网最细保姆级别教学)
RocketMQ的下载与安装(全网最细保姆级别教学)
85 0
|
23天前
|
消息中间件 网络安全 数据安全/隐私保护
麒麟系统ARM安装rabbitmq
麒麟系统ARM安装rabbitmq
|
7天前
|
消息中间件 存储 网络协议
初始&安装RabbitMQ
初始&安装RabbitMQ
19 3
|
16天前
|
消息中间件 JavaScript 前端开发
Window系统下载与安装RabbitMQ
Window系统下载与安装RabbitMQ
33 0
|
17天前
|
消息中间件 Docker 微服务
RabbitMQ入门指南(十一):延迟消息-延迟消息插件
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了DelayExchange插件、延迟消息插件实现延迟消息等内容。
29 0
|
17天前
|
消息中间件 微服务
RabbitMQ入门指南(十):延迟消息-死信交换机
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了死信交换机、死信交换机实现延迟消息等内容。
33 0
|
17天前
|
消息中间件 供应链 Java
RabbitMQ入门指南(九):消费者可靠性
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了消费者确认机制、失败重试机制、失败处理策略、业务幂等性等内容。
36 0
RabbitMQ入门指南(九):消费者可靠性
|
17天前
|
消息中间件 存储 Java
RabbitMQ入门指南(八):MQ可靠性
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了MQ数据持久化、LazyQueue模式、管理控制台配置Lazy模式、代码配置Lazy模式、更新已有队列为lazy模式等内容。
51 0
|
17天前
|
消息中间件 Java 微服务
RabbitMQ入门指南(七):生产者可靠性
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了消息丢失的可能性、生产者可靠性中的生产者重试机制和生产者确认机制等内容。
20 0
RabbitMQ入门指南(七):生产者可靠性
|
17天前
|
消息中间件 JSON Java
RabbitMQ入门指南(六):消息转换器及其案例
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了RabbitMQ默认转换器、JSON转换器及其案例等内容。
24 0