RabbitMQ的基本介绍

什么是MQ

本质是一个队列,只不过队列中存放的信息是message罢了,还是一种跨进程的通信机制,用于上下游传递信息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,信息发送上有只需要依赖MQ,不用依赖其他服务。

为什么要使用MQ

  • 流量消峰
  • 应用解耦
  • 异步处理

MQ的分类

  • ActiveMQ
    • 优点:单机吞吐量万级,时效性ms级,可用性高,基于主从架构高可用性,消息可靠性较低的概率丢失数据
    • 缺点:维护较少,高吞吐量场景较少使用
  • Kafka
    • 大数据中使用率高,百万级TPS的吞吐量
    • 优点:吞吐量高、分布式、时效性高、不会丢失数据、使用广泛
    • 缺点:消息失败不支持重试
  • RocketMQ
    • 优点:单机吞吐量高、0丢失、支持10亿级别的消息堆积
    • 缺点:支持客户端语言不多
  • Rabbit
    • 当前最主流的消息中间件之一
    • 优点:支持高并发、性能好、吞吐量高、跨平台、支持多种语言、社区活跃高…
    • 缺点:商业版需要收费,学习成本高

MQ的选择

  • Kafka:大数据、大型公司、日志采集
  • RocketMQ:金融互联网、稳定性上值得信赖、高并发
  • RabbitMQ:时效性微秒级、社区活跃度比较高、数据量没那么大

RabbitMQ

概念

是一个消息中间件:接收、存储和转发信息数据

  • 生产者:生产数据发送信息的程序是生产者
  • 交换机:

    在这里插入图片描述

  • 队列:

    在这里插入图片描述

  • 消费者:

    在这里插入图片描述

核心部分

  • 工作原理

    在这里插入图片描述

  • Broker:接收和分发信息的应用,RabbitMQ Server就是Message Broker

  • Virtual host:

    在这里插入图片描述

  • Connection:publisher/consumer和broker之间的TCP连接

  • Channel:

    在这里插入图片描述

  • Exchange:

    在这里插入图片描述

  • Queue:消息最终被送到这里consumer取走

  • Binding:

    在这里插入图片描述

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

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

相关文章

软考中级—— 操作系统知识

进程管理 操作系统概述 操作系统的作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境。 操作系统的特征:并发性、共享性、虚拟性、不确定性。 操作系统的功能:进程管理、存储管理、文件管理、设备…

深入学习git

1、git原理及整体架构图 一些常用的命令 git add . 或 git add src/com/ygl/hello/hello.java 指定文件 git commit . 或 git commit src/com/ygl/hello/hello.java 指定文件 git push origin 分支名称 2、git stash的应用场景 场景一:你正在当前分支A开发&…

定时任务管理平台青龙 QingLong

一、关于 QingLong 1.1 QingLong 介绍 青龙面板是支持 Python3、JavaScript、Shell、Typescript 多语言的定时任务管理平台,支持在线管理脚本和日志等。其功能丰富,能够满足大部分需求场景,值得一试。 主要功能 支持多种脚本语言&#xf…

从零开始的C++(四)

上篇链接:http://t.csdnimg.cn/3nyT9 1.拷贝构造函数: 上篇中介绍了析构函数,即在对象销毁时自动调用的函数,常用于含有malloc、fopen等成员变量的对象。然而,在将对象做函数实参进行值传递的时候,可能会…

【算法训练-贪心算法 一】买卖股票的最佳时机II

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【贪心算法】,使用【数组】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…

简化数据库操作:探索 Gorm 的约定优于配置原则

文章目录 使用 ID 作为主键数据库表名TableName临时指定表名列名时间戳自动填充CreatedAtUpdatedAt时间戳类型Gorm 采用约定优于配置的原则,提供了一些默认的命名规则和行为,简化开发者的操作。 使用 ID 作为主键 默认情况下,GORM 会使用 ID 作为表的主键: type User st…

十四天学会C++之第三天(数组和字符串)

1. 数组的定义和初始化 数组是一种由相同数据类型的元素组成的集合,这些元素按照一定的顺序存储在连续的内存位置上。数组的大小在创建时是固定的,无法在运行时改变。 在C中,数组的定义和声明非常简单。定义一个数组: 数据类型…

(SAR)Sentinel-1影像自动下载

基于ASF网站提供的python代码,实现Sentinel-1影像的自动下载; 1、登录ASF网站 登录Sentinel-1影像ASF网站:https://search.asf.alaska.edu/; 点击网站最右侧Sign in图标,进行用户注册; 注册完用户之后&…

宠物医院必备,介绍一款宠物疫苗接种管理软件

在当今社会,养宠物已经成为越来越多人的生活方式,宠物疫苗接种已是宠物医院的重要工作,但是目前绝大多数的宠物医院对疫苗接种的管理,还是采取人工登记方式,不仅效率低下,而且无法做到疫苗接种到期自动提醒…

如何使用ArcGIS Pro制作标准地图样式国界

相信大家都浏览过标准地图服务提供的标准地图,不知道你有没有想过尝试制作里面的国界,这里为大家介绍一下制作方法,希望能对你有所帮助。 制作已定国界 在地图数据内,国界分为已定国界、未定国界和海岸线,我们先对已定…

基于蜉蝣优化的BP神经网络(分类应用) - 附代码

基于蜉蝣优化的BP神经网络(分类应用) - 附代码 文章目录 基于蜉蝣优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.蜉蝣优化BP神经网络3.1 BP神经网络参数设置3.2 蜉蝣算法应用 4.测试结果:5.M…

【算法训练-二分查找 一】二分查找、在排序数组中查找元素的第一个和最后一个位置

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是螺旋矩阵,使用【二维数组】这个基本的数据结构来实现 二分查找【EASY】 从最简单的二分查找入手,进而开始解决一系列其变体…