rabbitmq第一课-rabbitmq的快速安装以及核心概念

这篇具有很好参考价值的文章主要介绍了rabbitmq第一课-rabbitmq的快速安装以及核心概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、MQ介绍

1.什么是MQ?为什么要用MQ?

  • 消息队列是一种在应用程序之间传递消息的技术。它提供了一种异步通信模式,允许应用程序在不同的时间处理消息。
  • 消息队列通常用于解耦应用程序,以便它们可以独立地扩展和修改。在消息队列中,消息发送者将消息发送到队列中,然后消息接收者从队列中接收消息。这种模式允许消息接收者按照自己的节奏处理消息,而不必等待消息发送者处理完消息。
  • 常见的消息队列包括RabbitMQ、Kafka和ActiveMQ等。

消息的三大要素:异步、解耦、削峰。

2.MQ的优缺点

  • 系统可用性降低
    系统引入的外部依赖增多,系统的稳定性就会变差。一旦MQ宕机,对业务会产生影响。这就需要考虑如何保证MQ的高可用。

  • 系统复杂度提高
    引入MQ后系统的复杂度会大大提高。以前服务之间可以进行同步的服务调用,引入MQ后,会变为异步调用,数据的链路就会变得更复杂。并且还会带来其他一些问题。比如:消息如何高效存储、如何定期维护、如何监控、如何溯源等等。如何保证消费不会丢失?不会被重复调用?怎么保证消息的顺序性等问题。

  • 消息安全性问题
    引入MQ后,消息需要在MQ中存储起来。这时就会带来很多网络造成的数据安全问题。比如如何快速保存海量消息?如何保证消息不丢失?不被重复处理?怎么保证消息的顺序性?如何保证消息事务完整等问题。

3、几大主流MQ产品特点比较
rabbitmq第一课-rabbitmq的快速安装以及核心概念

二、Rabbitmq快速上手

  1. 安装RabbitMQ服务
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.11-management
  1. 发送消息/接收消息

rabbitmq第一课-rabbitmq的快速安装以及核心概念

三、RabbitMQ中的核心概念总结

rabbitmq第一课-rabbitmq的快速安装以及核心概念文章来源地址https://www.toymoban.com/news/detail-501496.html

  1. 服务主机Broker
    一个搭建RabbitMQ Server的服务器称为Broker。这个并不是RabbitMQ特有的概念,但是却是几乎所有MQ产品通用的一个概念。未来如果需要搭建集群,就需要通过这些Broker来构建。
  2. 虚拟主机 virtual host
    RabbitMQ出于服务器复用的想法,可以在一个RabbitMQ集群中划分出多个虚拟主机,每一个虚拟主机都有全套的基础服务组件,可以针对每个虚拟主机进行权限以及数据分配。不同虚拟主机之间是完全隔离的,如果不考虑资源分配的情况,一个虚拟主机就可以当成一个独立的RabbitMQ服务使用。
  3. 连接 Connection
    客户端与RabbitMQ进行交互,首先就需要建立一个TPC连接,这个连接就是Connection。既然是通道,那就需要尽量注意在停止使用时要关闭,释放资源。
  4. 信道 Channel
    一旦客户端与RabbitMQ建立了连接,就会分配一个AMQP信道 Channel。每个信道都会被分配一个唯一的ID。也可以理解为是客户端与RabbitMQ实际进行数据交互的通道,我们后续的大多数的数据操作都是在信道 Channel 这个层面展开的。
    RabbitMQ为了减少性能开销,也会在一个Connection中建立多个Channel,这样便于客户端进行多线程连接,这些连接会复用同一个Connection的TCP通道,所以在实际业务中,对于Connection和Channel的分配也需要根据实际情况进行考量。
  5. 交换机 Exchange
    这是RabbitMQ中进行数据路由的重要组件。消息发送到RabbitMQ中后,会首先进入一个交换机,然后由交换机负责将数据转发到不同的队列中。RabbitMQ中有多种不同类型的交换机来支持不同的路由策略。从Web管理界面就能看到,在每个虚拟主机中,RabbitMQ都会默认创建几个不同类型的交换机来。
    rabbitmq第一课-rabbitmq的快速安装以及核心概念
  6. 队列 Queue
    Queue是实际保存数据的最小单位。Queue不需要Exchange也可以独立工作,只不过通常在业务场景中,会增加Exchange实现更复杂的消息分配策略。Queue结构天生就具有FIFO的顺序,消息最终都会被分发到不同的Queue当中,然后才被消费者进行消费处理。这也是最近RabbitMQ功能变动最大的地方。最为常用的是经典队列Classic。RabbitMQ 3.8.X版本添加了Quorum队列,3.9.X又添加了Stream队列。从官网的封面就能看到,现在RabbitMQ主推的是Quorum队列。
    rabbitmq第一课-rabbitmq的快速安装以及核心概念

到了这里,关于rabbitmq第一课-rabbitmq的快速安装以及核心概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kafka第一课概述与安装

    生产经验 面试重点 Broker面试重点 代码,开发重点 67 章了解 如何记录行为数据 1.产生原因 前端 传到日志 日志传到Flume 传到HADOOP 但是如果数据特比大,HADOOP就承受不住了 2.Kafka解决问题 控流消峰 Flume传给Kafka 存到Kafka Hadoop 从Kafka取数据 ,而不是Kafka强行发 类似 菜鸟驿站,

    2024年02月13日
    浏览(27)
  • RabbitMQ基础核心概念

    了解RabbitMQ的核心概念 1、模型概念 2、Producer (生产者) 、 Consumer(消费者) 3、Exchange (交换机) 4、Queue (消息队列) 5、Broker(服务节点) 6、RabbitMQ的五种工作模式 Producer(生产者) :顾名思义是生产消息的一方 Consumer(消费者) :顾名思义是消费消息的一方 而消息一般由 俩部分组成

    2023年04月09日
    浏览(49)
  • RabbitMQ核心概念记录

    本文来记录下RabbitMQ核心概念 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发

    2024年02月03日
    浏览(53)
  • [Stable Diffusion教程] 第一课 原理解析+配置需求+应用安装+基本步骤

    本次内容记录来源于B站的一个视频 以下是自己安装过程中整理的问题及解决方法: 问题:stable-diffusion-webui启动No Python at ‘C:xxxxxxpython.exe‘ 解答:打开webui.bat 把 中的%~dp0venv改成自己python的安装路径就行获取直接set值即可 如 修改完之后又遇到如下问题 将python直接卸载掉

    2024年02月11日
    浏览(42)
  • 创建台虚拟机并安装上window10系统(NETBASE 第一课)

    虚拟机(Virtual Machine)是一种基于软件的模拟技术,它可以将一台物理计算机模拟成多个虚拟计算机运行不同的操作系统和应用程序,从而实现资源的虚拟化和隔离。在虚拟机中,每个虚拟计算机都拥有自己的独立的操作系统和应用程序,并且可以独立地运行和管理。 虚拟机

    2024年02月13日
    浏览(55)
  • ShardingJDBC核心概念与快速实战

    目录 ShardingSphere介绍 ShardingSphere特点 ShardingSphere简述 ShardingSphere产品区分 ShardingJDBC实战 核心概念 实战 ShardingJDBC的分片算法 ShardingSphere目前提供了一共五种分片策略: 分库分表带来的问题 ShardingSphere特点 什么样的框架:Apache ShardingSphere是一套开源的分布式数据库中间件解决

    2024年02月03日
    浏览(25)
  • RabbitMQ监控方法以及核心指标

    探讨rabbitmq的监控数据采集方式以及需要关注的核心指标,便于日常生产进行监控和巡检。 rabbitmq的指标采集有2种方式 rabbitmq的内置或者外部下载的插件暴露指标 使用第三方rabbitmq_exporter采集rabbitmq并暴露指标 RabbitMQ内部集成Prometheus来获取指标,操作也比较简便。 3.8.0之前版

    2024年02月21日
    浏览(40)
  • ElasticSearch 核心概念以及常用命令

    概念: 这里可以类比与 MySQL 中的表,但是不同于表 在 es 中索引有三层含义 表示源文件数据:通常说集群中有 user 索引,即表示集群服务中存在 user 这样一张“表” 表示索引文件:以加速查询检索为目的而设计和创建的数据文件,通常承载于某些特定的数据结构,如哈希、

    2024年03月10日
    浏览(48)
  • es 集群核心概念以及实践

    节点是一个Elasticsearch的实例 本质上就是一个JAVA进程 一台机器上可以运行多个Elasticsearch进程,但是生产环境一般建议一台机器上只运行一个Elasticsearch实例 每一个节点都有名字,通过配置文件配置,或者启动时候 -E node.name=node1指定 每一个节点在启动之后,会分配一个UID,保

    2024年04月22日
    浏览(40)
  • rabbitmq第二课-RabbitMQ核心编程模型以及消息应用场景详解

    使用RabbitMQ提供的原生客户端API进行交互。这是使用RabbitMQ的基础。 1.1、maven依赖 1.2、基础编程模型 1.首先创建连接,获取Channel 2.声明Exchange-可选 3、声明queue 4、声明Exchange与Queue的绑定关系-可选 总结:说白了,就是声明一个交换机和队列,然后进行绑定,至于Channel和连接

    2024年02月10日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包