当前位置: 首页 > news >正文

网站建设pqiw江苏中淮建设集团有限公司网站

网站建设pqiw,江苏中淮建设集团有限公司网站,建设部标准网站,ip提取网站源码带后台RabbitMQ延时队列 什么是延时队列 延时队列顾名思义#xff0c;即放置在该队列里面的消息是不需要立即消费的#xff0c;而是等待一段时间之后取出消费。 应用场景 场景一#xff1a;在订单系统中#xff0c;一个用户下单之后通常有30分钟的时间进行支付#xff0c;如…RabbitMQ延时队列 什么是延时队列 延时队列顾名思义即放置在该队列里面的消息是不需要立即消费的而是等待一段时间之后取出消费。 应用场景 场景一在订单系统中一个用户下单之后通常有30分钟的时间进行支付如果30分钟之内没有支付成功那么这个订单将进行一场处理。这是就可以使用延时队列将订单信息发送到延时队列。 场景二用户希望通过手机远程遥控家里的智能设备在指定的时间进行工作。这时候就可以将用户指令发送到延时队列当指令设定的时间到了再将指令推送到智能设备。 实现方式 Rabbitmq实现延时队列一般而言有两种形式 第一种方式利用两个特性 Time To Live(TTL消息过期)、Dead Letter ExchangesDLX死信队列 第二种方式利用rabbitmq中的插件x-delay-message 三、第一种利用TTL DLX实现延时队列的方式 AMQP协议和RabbitMQ队列本身没有直接支持延迟队列功能但是可以通过以下特性模拟出延迟队列的功能。 1、Time To Live(TTL) RabbitMQ可以针对Queue设置x-expires 或者 针对Message设置 x-message-ttl来控制消息的生存时间如果超时(两者同时设置以最先到期的时间为准)则消息变为dead letter(死信) A: 通过队列属性设置队列中所有消息都有相同的过期时间。 B: 对消息进行单独设置每条消息TTL可以不同。 2、Dead Letter ExchangesDLX RabbitMQ的Queue可以配置x-dead-letter-exchange和x-dead-letter-routing-key可选两个参数如果队列内出现了dead letter则按照这两个参数重新路由转发到指定的队列。 x-dead-letter-exchange出现dead letter之后将dead letter重新发送到指定exchange x-dead-letter-routing-key出现dead letter之后将dead letter重新按照指定的routing-key发送 用一个具体案例来实现第一种方式用户下订单后如何在一分钟没有支付就取消订单 死信队列 死信的概念 死信顾名思义就是无法被消费的消息字面意思可以这样理解一般来说producer 将消息投递到 broker 或者直接到queue 里了consumer 从 queue 取出消息进行消费但某些时候由于特定的原因导致 queue 中的某些消息无法被消费这样的消息如果没有后续的处理就变成了死信有死信自然就有了死信队列。 应用场景:为了保证订单业务的消息数据不丢失需要使用到 RabbitMQ 的死信队列机制当消息消费发生异常时将消息投入死信队列中.还有比如说: 用户在商城下单成功并点击去支付后在指定时间未支付时自动失效 死信的来源 消息 TTL 过期 队列达到最大长度(队列满了无法再添加数据到 mq 中) 消息被拒绝(basic.reject 或 basic.nack)并且 requeuefalse. 死信实战 package com.zking.xiongda.config;import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component;import java.util.HashMap; import java.util.Objects;Configuration public class QueueConfig {/*** 死信队列* return*/Beanpublic Queue deadQueue(){return new Queue(dead-queue);}/*** 死信交互机*/Beanpublic Exchange deadExchange(){return new DirectExchange(dead-exchange);}/*** 绑定死信队列* return*/Beanpublic Binding bindingExchange(){return BindingBuilder.bind(deadQueue()).to(deadExchange()).with(dead-exchange.key).noargs();}/*** 普通队列* return*/Beanpublic Queue xioangdaQueue(){// hashmap设置对列参数信息HashMapString, Object hashMap new HashMap();// 设置消息过期时间hashMap.put(x-message-ttl,20000);// 设置消息过期转换死信队列交换机hashMap.put(x-dead-letter-exchange,dead-exchange);// 设置改队列关联转移到交换机路由keyhashMap.put(x-dead-letter-routing-key,dead-exchange.key);// true是否持久false是否排他false是否自动删除return new Queue(xiongda-queue,true,false,false,hashMap);}/*** 普通交换机*/Beanpublic Exchange xioangdaExchange(){return new DirectExchange(xiongda-exchange);}/*** 绑定普通队列* return*/Beanpublic Binding xioangdaDindingExchange(){return BindingBuilder.bind(xioangdaQueue()).to(xioangdaExchange()).with(xiongda-exchange.key).noargs();}}
http://www.w-s-a.com/news/991893/

相关文章:

  • 网站主机一般选哪种的企业数字展厅
  • 网站建设该如何学衡水建设局网站首页
  • 高校网站建设工作总结番禺网站开发哪家好
  • 苏州 网站的公司wordpress主页代码
  • 怎么用html做图片展示网站外贸网站建设推广费用
  • 可以做本地生活服务的有哪些网站中油七建公司官网
  • 如何建设谷歌网站网站建设优点
  • 做网站的目标是什么产品宣传片制作公司
  • 柳州建设公司网站辽宁建设工程信息网评标专家入库
  • 合肥建设学校官方网站excel导入wordpress
  • 禹城网站设计做网站需要考虑哪些
  • 深圳做营销网站建设wordpress添加文章封面
  • 阿里云的网站建设方案织梦和wordpress哪个安全
  • 聊城网站建设公司电话wordpress怎么重新配置文件
  • 创业如何进行网站建设泰州公司注册
  • 免费网站建设培训学校手机百度高级搜索入口在哪里
  • 建站经验安徽六安发现一例新冠阳性检测者
  • 滨州内做网站系统的公司汕头网络营销公司
  • 苏州制作网站的公司哪家好wordpress google搜索
  • c语言做项目网站wordpress博客被书为什么还
  • 企业建站用什么系统网站建设补充协议模板
  • 常州网站关键字优化淘客网站怎么做排名
  • 全flash网站制作教程网站做进一步优化
  • 建设网站步骤是如何做自媒体和网站签约赚点击
  • 网站建设的闪光点网站 备案 拍照
  • 那些企业需要做网站九洲建设集团网站
  • 中山企业做网站昆明做网站价格
  • wordpress 新网站 代码网站可以做系统还原吗
  • 百度给做网站公司餐饮设计装饰公司
  • 专门卖医疗器械的网站网站建设方案一份