草庐IT

oCommunicator_RabbitMQ_Handler

全部标签

RabbitMQ之延迟队列

1概念​延时队列,队列内部是有序的,最重要的特性体现在它的延时属性上,延时队列中的元素是希望再指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列2使用场景订单在十分钟之内未支付则自动取消新创建的店铺,如果十天内都没有上传过商品,则自动发送消息提醒用户注册成功后,如果三天内没有登陆则进行短信提醒用户发起退款,如果三天内没有得到处理则通知相关运营人员这些场景都有一个特点,需要在某个事件发生之后或者之前的指定时间点完成某一项任务,如:发生订单生成事件,在十分钟之后检查该订单支付状态,然后将未支付的订单进行关闭;看起来似乎使用定时任务,一直轮询数据,每秒查

RabbitMQ的安装、配置和实战

RabbitMQ安装dockerrun-d--namexd_rabbit-eRABBITMQ_DEFAULT_USER=admin-eRABBITMQ_DEFAULT_PASS=password-p15672:15672-p5672:5672rabbitmq:3.8.15-management#网络安全组记得开放端口4369erlang发现口5672client端通信口15672管理界面ui端口25672server间内部通信口访问管理界面ip:15672依赖引入org.springframework.bootspring-boot-starter-amqpapplication.xmlspr

RabbitMQ

一、初识MQ1.同步通讯时效性强,立即获取结果微服务间基于Feign的调用就属于同步方式,存在一些问题:①耦合度高②性能和吞吐能力不如异步③额外资源消耗④级联失败问题2.异步通讯异步调用常见实现就是事件驱动模式优点:①服务解耦②性能提升,吞吐量提高③服务没有强依赖,不担心级联问题④流量削峰缺点①依赖Broker(事件代理者)的可靠性、  安全性、吞吐能力②架构复杂的情况下,业务没有明显  的流程线,不好追踪管理3.MQ常见框架MQ(MessageQueue),中文是消息队列,字面来看就是存放消息的队列,也就是事件驱动架构中的Broker二、RabbitMQ快速入门1.RabbitMQ概述Rab

Spring Boot 中的 RabbitMQ 的消息接收配置是什么,原理,如何使用

SpringBoot中的RabbitMQ的消息接收配置是什么,原理,如何使用RabbitMQ是一个流行的消息队列系统,它可以用于在应用程序之间传递消息。SpringBoot提供了对RabbitMQ的支持,我们可以使用SpringBoot中的RabbitMQ消息接收配置来接收RabbitMQ中的消息。本文将介绍RabbitMQ的消息接收配置的原理和如何在SpringBoot中使用它。RabbitMQ的消息接收配置原理在RabbitMQ中,消息消费者需要创建一个连接和一个信道,并订阅一个队列来接收消息。RabbitMQ的Java客户端库提供了一种面向对象的方式来实现这些操作。在SpringBoot

Prometheus之rabbitmq监控指标详解

rabbitmq_channels用于显示RabbitMQ服务器上当前打开的通道数量。通过监控这个指标,您可以了解到RabbitMQ服务器打开的通道数随时间变化的情况,以及通道数量是否很高或者非常低。rabbitmq_connections用于显示与RabbitMQ服务器的连接总数。该指标可以帮助您跟踪RabbitMQ服务器的连接负载,并确定是否需要增加服务器资源以提高性能。通过监控这个指标,您可以了解RabbitMQ连接的使用情况,包括当前连接数、已建立连接的总数、断开的连接数等。rabbitmq_consumers用于显示当前连接到RabbitMQ服务器并消费消息的消费者的数量。通过监控r

docker-compose部署rabbitmq集群

1、集群分类RabbitMQ的是基于Erlang语言编写,而Erlang又是一个面向并发的语言,天然支持集群模式。RabbitMQ的集群以下分类:标准集群:是一种分布式集群,将队列分散到集群的各个节点,从而提高整个集群的并发能力。镜像集群:是一种主从集群,标准集群的基础上,添加了主从备份功能(非强一致性),提高集群的数据可用性。仲裁队列:是3.8版本以后才有的新功能,用来替代镜像集群,也是一种主从集群,主从同步基于Raft协议,强一致。镜像集群虽然支持主从,但主从同步并不是强一致的,某些情况下可能有数据丢失的风险。因此在RabbitMQ的3.8版本以后,推出了新的功能:仲裁队列来代替镜像集群,

SpringBoot + RabbitMQ从延时队列中删除指定的值【RabbitMQ中的basicAck和basicNack的区别以及basicReject又是什么?】

业务需求是,就是我本来是有一个order-queue队列绑定到了死信队列交换机order-dead-direct-exchange上,然后我的业务是,现在有一个用户下单但是没有付款,order-queue队列写入该条信息并计时24小时后如果用户还是未付款状态则移除到死信队列order-dead-queue中。问题来了,如果在这个24小时内,用户取消订单,这时候就要从order-queue队列中移除该条信息。怎么操作呢?1、确保依赖的引入dependency>groupId>org.springframework.bootgroupId>artifactId>spring-boot-starte

rabbitMQ杂记

消息队列应用场景消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性:解耦:异步:削峰:常见类型:ps:CAP理论在分布式系统中,也有类似数据库ACID的特性,那就是CAP,他们分别是:1.Consistency一致性强调进群节点中数据一致。在分布式中一致性又包括强一致性和弱一致性,强一致性就是指在任何时刻任何节点看到的数据都是一样的;弱一致性一般实现是最终一致性,即刚开始可能存在差异,但随着时间的推移,最终数据保持一致。2.Availability可用性强调集群在任何时间内都正常使用3.PartitionTolerance分

Window10 系统 RabbitMQ的安装和简单使用

1、下载&安装Erlang因为RabbitMQ的服务端是基于Erlang编写的,所以,首先需要安装Erlang。1)下载下载地址如下:https://www.erlang.org/downloads此处下载比较慢,可以参考如下百度网盘:链接:https://pan.baidu.com/s/1oXq5QX3IlzRq5L-mk1gC4Q提取码:luna2)安装选择相应的安装目录,一路next即可。3)配置环境变量在系统变量中新建变量变量名(N):ERLANG_HOME变量值(V):H:\SW_install\erl-24.1注意:变量值需要根据自己的实际情况进行修改将;%ERLANG_HOME%

Docker (CentOS)配置rabbitMQ 服务器访问15672端口显示服务器拒绝连接

在自己的服务器上配置rabbitMq时已经启动成功了,但是访问就是出错。使用以下命令启动。dockerrun\-eRABBITMQ_DEFAULT_USER=账户\-eRABBITMQ_DEFAULT_PASS=密码\--namemq\--hostnamemq1\-p15672:15672\-p5672:5672\-d\rabbitmq:latest 启动后可以看到已经启动成功。输入地址去访问看到被拒绝访问了 那么有三种可能性:1、你的防火墙端口没有开放使用命令开放端口firewall-cmd--zone=public--add-port=[端口号]/[协议]--permanentfirewa