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

发布时间:2023年12月19日

专栏导航

RabbitMQ入门指南

从零开始了解大数据


目录

专栏导航

前言

一、消息队列介绍

1.同步调用和异步调用

2.常见消息队列介绍

二、RabbitMQ简介及其安装步骤

1.RabbitMQ简介

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

(1) 创建网络

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

(3) 登录RabbitMQ管理控制台

总结


前言

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


一、消息队列介绍

1.同步调用和异步调用

同步调用:

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

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

异步调用:

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

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

2.常见消息队列介绍

RabbitMQActiveMQRocketMQKafka
公司RabbitApacheAlibabaApache
开发语言ErlangJavaJavaScala&Java
可用性一般
单机吞吐量一般非常高
消息延迟微秒级毫秒级毫秒级毫秒以内
消息可靠性一般一般

二、RabbitMQ简介及其安装步骤

1.RabbitMQ简介

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

官网地址:

RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQicon-default.png?t=N7T8https://www.rabbitmq.com/

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

(1) 创建网络

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

docker network create mall

运行图:

(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

具体参数的含义如下:

-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,并带有管理界面插件

运行图:

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

docker ps -a

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

若启动失败,请在启动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

运行图:

(3) 登录RabbitMQ管理控制台

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

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


总结

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

文章来源:https://blog.csdn.net/jiangyq_/article/details/135009046
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。