草庐IT

rabbitmq-delayed-message-exchange

全部标签

【RabbitMQ】RabbitMQ面试热点

使用RabbitMQ有什么好处?异步处理解耦流量削峰RabbitMQ结构(如何发送消息?)整体结构如下图所示:结构介绍Server:又称为broker,接受客户端连接,RabbitMQ节点;Connection:连接,应用程序与brokder建立网络连接;channel:网络通道,几乎所有的操作都是在channel中进行的,是进行消息对象的通道,客户端可以建立多个通道,每一个channel表示一个会话任务VirtualHost:虚拟机,一个节点由若干个虚拟机组成;Exchange:交换机,一个虚拟机由若干个交换机组成;Queue:消息队列,和交换机通过routingkey绑定发送消息流程生产者

RabbitMQ-数据持久化

一、持久化类型1、交换机持久化(SpringAMQP默认)2、队列持久化(SpringAMQP默认)3、消息持久化二、消息持久化1、纯内存操作    如果采用纯内存操作,那么消息存储达到队列的上限之后,会有一个pageout操作,这个操作是将队列中已经有的一部分MQ消息转移到磁盘,给队列腾出空间,使得队列能够继续接收MQ消息,这个转移MQ消息的过程是一个阻塞的过程,转移过程中,队列无法接收MQ消息。2、持久化消息    SpringAMQP默认采用这种方式,这种方式需要将MQ消息入队的同时,也写一份进入到磁盘中,但是与Pageout操作有一定区别,不会阻塞;当队列满了之后,会有一次清空内存的操

centos7安装erlang23.3.4.11及rabbitmq3.9.16版本

rpm包有系统版本要求,el是RedHatEnterpriseLinux(EL)的缩写。EL7是RedHat7.x,Centos7.xEL8是RedHat8.x,Centos8.x所以我们在安装erlang及rabbitmq时需要选择与自己的服务器相对应的rpm包#rabbitmq的rpm安装包https://github.com/rabbitmq/rabbitmq-server/releases?page=10#erlang的rpm安装包https://github.com/rabbitmq/erlang-rpm/releases?page=6#erlang及rabbitmq版本对应关系ht

安装单机版rabbitMQ

安装单机版rabbitMQ版本介绍一、安装erlang环境1如果没有安装gcc的话,先安装gcc2创建/usr/local/erlang目录,把otp_src_20.1.tar.gz放入此目录3解压erlang安装包:tar-xvfotp_src_20.1.tar.gz4进入解压文件夹:cdotp_src_20.15erlang需要依赖JDK,因此需要先完成JDK的安装和环境变量配置。指定安装目录及安装配置6编译与安装:make&&makeinstall7配置erlang环境变量:vim/etc/profile然后将exportPATH=$PATH:/usr/local/erlang/bin添

RabbitMQ(二)

        老样子,咱八股文说完了,上点干货,来点实际的操作(不懂的先去把上章(RabbitMQ(一)啃了)    我目前在做的项目是用springboot自带的amqp创建的RabbitMQ坐标(如果不需要的可以去查一查RabbitMQ自身坐标进行引入):    创建步骤(newproject选择springInitializr=>它能帮我们快速创建springboot项目)                创建的时候选好自己要的版本(我这里选的是JDK17,用的是IDEA2023.3.1版本,为了赶紧给大家制作出来,就没有去换低版本使用JDK8了,2023.3.1还没找到在哪配8的版本)

vue3 + TS 自定义插件-全局message提示插件示例

本文记录Vue3+ts实现自定义一个全局插件,用于进行message消息提示,所谓全局插件即挂载到vue实例上,在App的任一子组件中均可通过app的实例调用该方法。消息提示功能只是示例主要是记录Vue3自定义插件功能的写法。文件结构:src/components/Toast/index.vue文件用于搭建和渲染消息在页面上的显示效果,比如需要显示在页面的哪个位置、字体、颜色、显示和隐藏的动画效果等;src/components/Toast/index.ts文件用于实现将消息的显示/隐藏等方法全局挂载到app实例上(注:对象写法默认需要导出一个install()方法),这样在main.ts中导

2.6日学习打卡----初学RabbitMQ(一)

2.6日学习打卡初识RabbitMQ、一.MQ消息队列MQ全称MessageQueue(消息队列),是在消息的传输过程中保存消息的容器。多用于系统之间的异步通信。同步通信相当于两个人当面对话,你一言我一语。必须及时回复异步通信相当于通过第三方转述对话,可能有消息的延迟,但不需要二人时刻保持联系。消息两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。队列数据结构中概念。在队列中,数据先进先出,后进后出。二.MQ的优势应用解耦在电商平台中,用户下订单需要调用订单系统,此时订单系统还需要调用库存系统、支付系统、物流系统完成业务。此时会产生两个问题:如

【RabbitMQ】死信(延迟队列)的使用

目录一、介绍1、什么是死信队列(延迟队列)2、应用场景3、死信队列(延迟队列)的使用4、死信消息来源二、案例实践1、案例一2、案例二(消息接收确认)3、总结一、介绍1、什么是死信队列(延迟队列)        死信,在官网中对应的单词为“DeadLetter”,它是RabbitMQ的一种消息机制。        死信队列(DeadLetterQueue)和延迟队列(DelayQueue)是两种不同的队列类型,但在实际应用中它们可以结合使用。        死信队列是当消息在队列中因为过期、被拒绝等原因无法正常处理时,会被重新发送到另一个交换机上,这个交换机就是死信交换机。死信队列可以用于实现重

go消息队列RabbitMQ - 订阅模式-direct

1.发布订阅在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。在Direct模型下:队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)消息的发送方在向Exchange发送消息时,也必须指定消息的RoutingKey。Exchange不再把消息交给每一个绑定的队列,而是根据消息的RoutingKey进行判断,只有队列的Routingkey与消息的Routingkey完全一致,才会接收到消息2.绑定绑定可以采用额外的routing_key参数。为了避免

c++ - std::atomic_store 和 std::atomic_exchange 不交换

根据en.cppreference.com,std::atomic_exchange和std::atomic_store等价于线程安全的std::swap。但这不是我使用g++或clang++得到的行为。Problemliveoncoliru.(见下文)它虽然打印了这个:std::atomic_storea:0x1ed2c300b:0x1ed2c501a:0x1ed2c501b:0x1ed2c501std::atomic_exchangea:0x1ed2c500b:0x1ed2c301a:0x1ed2c301b:0x1ed2c301这是为什么?难道我做错了什么?我是否误读了文档?代码l