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

专栏导航

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简介及其安装步骤等内容,希望对大家有所帮助。

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

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

相关文章

【LeetCode:1901. 寻找峰值 II | 二分】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

初识Python之Networkx模块

初识Python之Networkx模块 文章目录 初识Python之Networkx模块简介安装Networkx导入模块、查看版本信息一些基本操作创建Graph添加边(节点)获取Graph的基本信息Graph的基本绘图 简单应用案例使用内置的Graph数据创建一个无向图创建一个有向图在计算机网络…

LinuxCNC系统安装

首先我们需要准备一个U盘来安装系统,然后进入Debian官网。操作系统处,点击“下载Debian”。 如果需要下载其他比较全版本,可以点击“其他下载链接”,选择DVD的安装,因为是国外的网站,最好不要选择网络安装。…

MSDN:Mutually Semantic Distillation Network for Zero-Shot Learning 中文版 待更新

摘要 零样本学习(ZSL)的关键挑战是如何将潜在的语义知识融合在可见类的视觉特征和抽象特征之间,从而实现向不可见类的横向知识转移。之前的工作要么只是将图像的全局特征与其相关的类语义向量对齐,要么利用单向注意力来学习有限的…

【Linux基础】3. 文件基本属性

文章目录 【 1. 文件的属主和属组 】【 2. 显示文件的类型、权限 】2.1 文件类型2.2 文件权限 【 3. 更改文件属性 】3.1 chgrp 更改文件属组3.2 chown 更改文件所有者3.3 更改文件权限3.3.1 数字法更改文件权限3.3.2 符号法更改文件权限 【 1. 文件的属主和属组 】 Linux 系统…

CentOS:Docker容器中安装vim

在使用docker容器时,里边没有安装vim时,敲vim命令时提示说:vim: command not found 这个时候就须要安装vim,安装命令: apt-get install vim 出现以下错误: 解决方法: apt-get update 这个命令的…

EMC测试与整改实践?|深圳比创达电子

电磁兼容(EMC)测试和整改是当今社会对电磁兼容(EMC)意识日益深入的表现,EMC测试与整改随着社会对电磁环境要求的不断提高,越来越受到重视,下面就EMC测试与整改实践进行一下详细介绍。 一、什么是EMC测试? EMC测试是指在一定的电…

RPC(3):HttpClient实现RPC之GET请求

1HttpClient简介 在JDK中java.net包下提供了用户HTTP访问的基本功能,但是它缺少灵活性或许多应用所需要的功能。 HttpClient起初是Apache Jakarta Common 的子项目。用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 H…

Nginx快速入门:Nginx应用场景、安装与部署(一)

1. Nginx简介 Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个非常流行的开源 Web 服务器软件。它是由俄罗斯程序员 Igor Sysoev 开发的,最初是为了解决在高并发场景下的C10k 问题(即一个服务器进程只能处理 10,000 个并发连接&#x…

计算机论文写作助手

本人原创AI应用,现有公开,体验一下

基于hfl/rbt3模型的情感分析学习研究——文本挖掘

参考书籍《HuggingFace自然语言处理详解 》 什么是文本挖掘 文本挖掘(Text mining)有时也被称为文字探勘、文本数据挖掘等,大致相当于文字分析,一般指文本处理过程中产生高质量的信息。高质量的信息通常通过分类和预测来产生&…

数字经济如何驱动企业高质量发展? ——核心机制、模式选择与推进路径

文章目录 每日一句正能量前言核心机制信息化和智能化作为数字经济的核心机制信息化和智能化如何提升企业生产效率和管理水平数据的获取、分析和利用对企业发展的影响 模式选择电子商务模式的选择共享经济模式的选择数据驱动的业务模式选择 推进路径建设数字化基础设施培养数字化…