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

news2024/11/17 21:55:18

专栏导航

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.coloradmin.cn/o/1322873.html

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

相关文章

文件上传——后端

文件上传流程: 创建阿里云OSS(对象存储服务)的bucket 登录阿里云,并完成实名认证,地址:https://www.aliyun.com/. 可以通过搜索,进入以下页面: 点击立即使用后: 点击…

Spring Boot3.1.6配置对应的Swagger

1. pom.xml导入Swagger依赖 <!--swagger3--> <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.0.2</version> </dependency> 2.创建SwaggerCo…

【兔子王赠书第13期】AI绘画实战:Midjourney从新手到高手

文章目录 写在前面AI绘画推荐图书一本书读懂AI绘画关键点内容简介作者简介 推荐理由粉丝福利写在后面 写在前面 如今AI技术已经进入了我们的日常学习生活中&#xff0c;如何用一本书轻松玩转AI绘画&#xff0c;领略无限艺术可能呢&#xff1f; AI绘画 AI绘画是指利用人工智能…

麒麟V10 ARM内核aarch64 安装harbor redis 存储错误解决办法

安装harbor 里面自带的 redis 报错 “jemalloc: Unsupported system page size” 解决办法 下载指定镜像的redis 替换harbor 自带的redis镜像 修改 docker-compose 文件替换原来的镜像版本。 删除 重构镜像执行&#xff1a; docker-compose up –build 后台启动&#xff…

Ubuntu 常用命令之 apt-get 命令用法介绍

apt-get是Ubuntu系统下的一个命令行工具&#xff0c;用于处理包。这个命令可以自动下载和安装软件包及其依赖项。它是Advanced Packaging Tool (APT)的一部分&#xff0c;APT是处理包的高级工具&#xff0c;可以处理复杂的包关系&#xff0c;如依赖关系等。 apt-get命令的常见…

〖Python网络爬虫实战㊸〗- 极验滑块介绍(五)

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明作者&#xff1…

调用第三方http接口 hutool工具类

1、引入依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.0.M2</version> </dependency>2、请求组装 String params"<BSXml>" " <MsgHeader>&…

【Java并发】聊聊线程的几种状态

线程状态 线程的状态 在Thread中有一个枚举类进行标识 /*** 线程状态** NEW 尚未启动的线程处于这种状态* RUNNABLE 在 JVM 上执行的线程处于这种状态* BLOCKED 被阻止等待监视器锁的线程处于这种状态* WAITING 即无限期地等待另一个线程来执行某一特定操作的线程处于这种状态…

Sectigo dv通配符ssl证书

DV通配符SSL证书是数字证书中比较特别的一款&#xff0c;这款SSL数字证书能同时为多个域名网站提供安全加密服务&#xff0c;帮助个人或者企事业单位获得主流浏览器以及终端的认可&#xff0c;从而营造良好的互联网环境。今天就随SSL盾小编了解Sectigo旗下的DV通配符SSL证书。 …

【Linux基础】1. Linux 启动过程

文章目录 【 1. 内核的引导 】【 2. 运行init 】 运行级别 【 3. 系统初始化 】【 4. 建立终端 】【 5. 用户登录系统 】【 6. 图形模式与文字模式的切换方式 】【 7. Linux关机 】 Linux系统的启动过程分为 5个阶段&#xff1a; &#xff08;1&#xff09;内核的引导。 &#…

Android修改submodule的lib包名

一、正常使用submodule的流程 在指定路径下&#xff1a; git clone gitgit.youraddress.com:android-apps/taobao.git cd taobao/ git checkout develop git submoudle init git submodule update二、改名步骤 需求&#xff1a;将LibStat改为libStat 因为Linux对大小写敏感…

国家开放大学 河南开放大学形成性考核 平时作业 统一参考资料

试卷代号&#xff1a;1258 房屋建筑混凝土结构设计 参考试题 一、单项选择题&#xff08;每小题2分&#xff0c;共计40分&#xff09; 1.( )是将框架结构中的部分跨间布置剪力墙或把剪力墙结构的部分剪力墙抽掉改为框架承重。 A.梁板结构体系 B.框…

银行数据分析进阶篇:银行业零售贷款营销与风控平衡分析

上周和大家分享了银行外呼数据分析与客户精准营销的案例&#xff0c;得到很多朋友正向的反馈&#xff0c;今天再次给大家带来银行业零售贷款营销与风控平衡分析的案例&#xff0c;结构清晰&#xff0c;可直接复制套用&#xff0c;特地分析给大家&#xff01; 本文主要分享作者分…

车载软件易受攻击,如何规避嵌入式软件漏洞

在汽车开发中&#xff0c;汽车网络安全至关重要&#xff0c;特别是现在汽车软件变得日益互联。阅读本文&#xff0c;了解如何预防汽车网络安全漏洞。 为什么汽车网络安全很重要&#xff1f; 如今&#xff0c;互联汽车的解决方案远不只有简单的从A点到B点。通过实时数据共享、应…

【数值计算方法】《工程数值计算Python教程》笔记

文章目录 [toc]第一章&#xff1a;绪论 1.1 1.1 1.1|数值计算在工程科学中的重要性 1.2 1.2 1.2|数值计算方法 1.3 1.3 1.3|程序设计盒图计算方法的选取减少运算次数避免相近的数相减 1.4 1.4 1.4|误差的来源、表示及传递误差的来源和分类模型误差观测误差截断误差舍入误差 误差…

力扣日记12.19-【二叉树篇】二叉搜索树中的搜索

力扣日记&#xff1a;【二叉树篇】二叉搜索树中的搜索 日期&#xff1a;2023.12.19 参考&#xff1a;代码随想录、力扣 700. 二叉搜索树中的搜索 题目描述 难度&#xff1a;简单 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你需要在 BST 中…

微软在 Perforce Helix 核心服务器中发现4个安全漏洞

微软分析师在对Perforce Helix的游戏开发工作室产品进行安全审查时&#xff0c;发现为游戏、政府、军事和技术等部门广泛使用的源代码管理平台 Perforce Helix Core Server 存在四大漏洞&#xff0c;并于今年 8 月底向 Perforce 报告了这些漏洞&#xff0c;其中一个漏洞被评为严…

HarmonyOS应用开发实战—开箱即用的活动创建页面【ArkTS】【鸿蒙专栏-33】

一.HarmonyOS应用开发实战—开箱即用的个人主页页面【ArkTS】【鸿蒙专栏-32】 1.1 项目背景 HarmonyOS(鸿蒙操作系统)是华为公司推出的一种分布式操作系统。它被设计为一种全场景、全连接的操作系统,旨在实现在各种设备之间的无缝协同和共享,包括智能手机、平板电脑、智能…

MFC 窗口创建过程与消息处理

目录 钩子简介 代码编写 窗口创建过程分析 消息处理 钩子简介 介绍几个钩子函数&#xff0c;因为它们与窗口创建工程有关 安装钩子函数 HHOOK SetWindowsHookExA([in] int idHook,[in] HOOKPROC lpfn,[in] HINSTANCE hmod,[in] DWORD dwThreadId ); 参数说明…

Kafka 安装与部署

目录 Kafka 下载 &#xff08;1&#xff09;将 kafka_2.11-2.4.1.tgz 上传至 /opt/software/ &#xff08;2&#xff09;解压安装包至 /opt/module/ [huweihadoop101 ~]$ cd /opt/software/ [huweihadoop101 software]$ tar -zxvf kafka_2.11-2.4.1.tgz -C ../module/&#…