草庐IT

MQ的概念和RabbitMQ知识点(无代码)

目录1.MQ的基本概念1.1MQ概述1.2MQ的优势1.应用解耦2. 异步提速3.削峰填谷1.3MQ的劣势以及可能引发的问题1.4常见的MQ产品2. RabbitMQ的知识点2.1RabbitMQ的工作模式1.简单模式2.工作队列模式WorkQueue 3.发布订阅模式Publish/subscribe2.2RabbitMQ的高级特性(有些概念需要结合视频讲解)1.消息的可靠投递2.Consumerack3. 死信队列2.3RabbitMQ的应用问题1.幂等性保障2.如何保证消息消费的顺序性1.MQ的基本概念1.1MQ概述MQ全称是MessageQueue(消息队列),是保存消息在传输过程中的

一、什么是 MQ

MQ的概念MQ(MessageQueue)消息队列,是在消息传输过程中存储消息的容器。多用于分布式系统之间的通信。队列是基础数据结构中“先进先出”的一种数据结构。消息对列,指把要传输的数据消息放在队列中,用队列机制来实现消息传递。MQ基本模型上图中,“P”是我们的生产者,“C”是我们的消费者,中间就是存放消息的消息队列。生产者将消息发送到MQ,MQ将消息推送给指定的消费者,或者消费者去MQ拉取特定的消息。生产者和消费者可以当做客户端,MQ就是服务端(也可以叫作消息中间件)。MQ的作用1、解耦容错未使用MQ前,库存系统、支付系统、物流系统其中任何一个子系统出现故障,都会造成下单操作异常。使用MQ

RabbitMQ详解(四):SpringBoot整合MQ

SpringBoot整合MQ需要创建两个springboot项目,一个springboot_rabbitmq_producer生产者,一个springboot_rabbitmq_consumer消费者fanout模式(配置文件方式)定义生产者创建生产者工程springboot_rabbitmq_producerpom.xml文件中添加依赖dependencies>dependency>groupId>org.springframework.bootgroupId>artifactId>spring-boot-starter-amqpartifactId>dependency>dependenc

Ubuntu安装RabbitMQ server - 在ubuntu+cpolar+rabbitMQ环境下,实现mq服务端远程访问

文章目录前言1.安装erlang语言2.安装rabbitMQ3.内网穿透3.1安装cpolar内网穿透(支持一键自动安装脚本)3.2创建HTTP隧道4.公网远程连接5.固定公网TCP地址5.1保留一个固定的公网TCP端口地址5.2配置固定公网TCP端口地址转载自cpolar内网穿透的文章:无公网IP,在外公网远程访问RabbitMQ服务「内网穿透」前言RabbitMQ是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一。由erlang开发的AMQP(AdvancedMessageQueue高级消息队列协议)的开源实现,由于erlang语言的高并发

【MQ-2 可燃气体和烟雾传感器与 Arduino 配合使用】

MQ-2可燃气体和烟雾传感器与Arduino配合使用前言MQ-2气体传感器引脚MQ-2气体和烟雾传感器模块组成MQ-2气体传感器模块如何工作?MQ-2可燃气体传感器模块常见问题MQ-2气体传感器模块的内部原理图ArduinoUNO-MQ-2可燃气体传感器-连接图Arduino代码MQ-2气体传感器模块的工作完整代码前言如今,传感器通过检测烟雾、火灾或气体并向相关人员发出警报,在许多不同的公寓、家庭和办公室的安全和安保中发挥着重要作用。这就是为什么在今天的文章中,我们将讨论一种常用于烟雾和气体探测器的传感器,即MQ-2可燃气体和烟雾传感器。不要被名字骗了,因为这个传感器不仅可以检测气体或烟雾,还

RabbitMQ --- 惰性队列、MQ集群

一、惰性队列1.1、消息堆积问题当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储消息达到上限。之后发送的消息就会成为死信,可能会被丢弃,这就是消息堆积问题。解决消息堆积有三种思路:增加更多消费者,提高消费速度。也就是我们之前说的workqueue模式在消费者内开启线程池加快消息处理速度扩大队列容积,提高堆积上限要提升队列容积,把消息保存在内存中显然是不行的。 1.2、惰性队列从RabbitMQ的3.6.0版本开始,就增加了LazyQueues的概念,也就是惰性队列。惰性队列的特征如下:接收到消息后直接存入磁盘而非内存消费者要消费消息时才会从磁盘中读取并加

MQ-2烟雾浓度传感器

文章目录一、模块简介二、工作原理三、程序设计本实验将采集到的传感器数据利用ADC转换,将转换后的电压值显示在串口调试助手上一、模块简介MQ-2烟雾传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当烟雾传感器所处环境中存在可燃气体时,烟雾传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该烟雾传感器气体浓度相对应的输出信号。MQ-2气体烟雾传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种气体传感器可检测多种可燃性气体,是一款适合多种应用的低成本烟雾传感器。1.模块特性:MQ-2烟雾传感器在较宽的浓度范围内

IBM MQ系列:认证及队列创建

引言本文是一次是真实从0开始创建消息队列,并开启了访问认证的过程。本次目标如下:Ip:10.10.10.2port:1416Queuemanager:QMGR_TESTchannel:CHL_TESTqueue_name:Q_TRAN_TEST_IN,Q_TRAN_TEST_OUT,Q_TRAN_TEST2_IN,Q_TRAN_TEST2_OUTUsername:testuserPassed:testuser123部署步骤登陆至mqm用户操作:su-mqm1、创建管理队列管理器crtmqmQMGR_TEST2、启动此队列管理器strmqmQMGR_TEST3、创建本地队列runmqscQMGR

四种基于MQ的分布式事务解决方案

在微服务的时代,分布式事务是绕不开的话题,尽管在大多数场景下,我们并不需要使用分布式事务,但是不需要使用不代表可以不会使用,万一哪天真需要用到了呢?分布式事务是一个比较大的话题,今天我们来看看基于MQ的分布式事务解决方案。在实际开发中,为了简化分布式事务,我们和其他服务交互,经常会采用MQ的方式,我们先来看下如果采用MQ的方式和其他服务进行交互,应该怎么做。采用MQ的方式和其他服务进行交互基于RocketMQ事务消息+最大努力通知RocketMQ提供了事务的消息的功能,我们来看下事务消息的原理:Producer发送一个半消息到Broker;Broker收到半消息后,响应Producer,Bro

【MQ选型】RabbitMQ、RocketMQ、Kafka选型

前言在平常管理团队的时候,肯定会遇到这种情况,某种业务问题,有解决方案的技术有很多种,但是不知道该如何选择,技术选型也是一件非常谨慎的事情,事关日后对应服务的维护和拓展,这里就讲讲RabbitMQ、RocketMQ、Kafka这三款MQ该如何选择选型前提1、产品必须是开源的主要是为了应对实际需求,如果开源产品有一点点不满足或者bug,我们也可以下载源码,潜心钻研一下并修改源码,就可以继续使用,方便且实用2、近几年比较流行的这个不用说了吧,技术大多数情况下,越流行,说明业务场景的解决方案就越成熟3、消息传输是可靠的:保证消息不会丢失这是MQ必须要保证的4、支持集群,可以横向扩展,包括解决单点故障