淘宝多少天自动收货

目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如:淘宝七天自动确认收货。在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持续七天,就是

目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如:

淘宝多少天自动收货

淘宝七天自动确认收货。在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持续七天,就是使用了消息中间件的延迟推送功能。

12306 购票支付确认页面。我们在选好票点击确定跳转的页面中往往都会有倒计时,代表着 30 分钟内订单不确认的话将会自动取消订单。其实在下订单那一刻开始购票业务系统就会发送一个延时消息给订单系统,延时30分钟,告诉订单系统订单未完成,如果我们在30分钟内完成了订单,则可以通过逻辑代码判断来忽略掉收到的消息。

在上面两种场景中,如果我们使用下面两种传统解决方案无疑大大降低了系统的整体性能和吞吐量:

使用 redis 给订单设置过期时间,最后通过判断 redis 中是否还有该订单来决定订单是否已经完成。这种解决方案相较于消息的延迟推送性能较低,因为我们知道 redis 都是存储于内存中,我们遇到恶意下单或者刷单的将会给内存带来巨大压力。

使用传统的数据库轮询来判断数据库表中订单的状态,这无疑增加了IO次数,性能极低。

使用 jvm 原生的 DelayQueue ,也是大量占用内存,而且没有持久化策略,系统宕机或者重启都会丢失订单信息。

消息延迟推送的实现

在 RabbitMQ 3.6.x 之前我们一般采用死信队列+TTL过期时间来实现延迟队列,我们这里不做过多介绍。

在 RabbitMQ 3.6.x 开始,RabbitMQ 官方提供了延迟队列的插件,可以下载放置到 RabbitMQ 根目录下的 plugins 下。

图片

我们在 Exchange 的

发送消息时我们需要指定延迟推送的时间,我们这里在发送消息的方法中传入参数 new MessagePostProcessor() 是为了获得 Message对象,因为需要借助 Message对象的api 来设置延迟时间。

message.getMessageProperties().setHeader(&34;,&34;);/** * Set the x-delay header. * @param delay the delay. * @since 1.6 */public void setDelay(Integer delay) {if (delay == null || delay < 0) {this.headers.remove(X_DELAY);}else {this.headers.put(X_DELAY,delay);}}

消费端进行消费

淘宝多少天自动收货

import com.rabbitmq.client.Channel;import org.springframework.amqp.rabbit.annotation.*;import org.springframework.amqp.support.AmqpHeaders;import org.springframework.stereotype.Component;import java.io.IOException;import java.util.Map;@Componentpublic class MQReceiver {@RabbitListener(queues = &34;)@RabbitHandlerpublic void onLazyMessage(Message msg,Channel channel) throws IOException{long deliveryTag = msg.getMessageProperties().getDeliveryTag();channel.basicAck(deliveryTag,true);System.out.println(&34; + new String(msg.getBody()));}```]()```javaimport org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;@SpringBootTest@RunWith(SpringRunner.class)public class MQSenderTest {@Autowiredprivate MQSender mqSender;@Testpublic void sendLazy() throwsException {String msg = &34;;mqSender.sendLazy(msg + &34;);}}

果然在 6 秒后收到了消息 lazy receive hello spring boot:

上一篇 2023年03月21 14:13
下一篇 2023年03月08 08:56

相关推荐

  • 50米多少秒算快,50米7秒4快吗

    这几个月对于即将初中毕业的同学们来说,繁重的学习任务加上艰苦的体育训练,想必各位都倍感压力吧?那么就请及时调整好心态,合理安排学习和生活,以一颗平常的心态面对中考,相信你一定能够收获更优秀的自己!中考

    2023年03月17 218
  • 地球是月亮的多少倍,地球是月亮直径多少倍

    明查员丨郑淑婧速览网传“月球年龄为20.3亿年”的说法或是对嫦娥五号带回的月壤样品的年龄的误读。科学界普遍认为,月球的实际年龄在40亿年以上,且接近45亿年。事件背景近日,中文网络盛传消息称:“中国国

    2023年03月23 263
  • 斐讯路由器怎么设置

    路由器频段带宽怎么设置1。这是斐讯路由器的一个例子。带宽示例12。在斐讯路由器后台登录界面。输入密码进入后台设置界面。路由器示例23。用鼠标点击“无线设置”,选择“基本无线设置”,在右侧宽带频段中选择

    2023年02月15 286
  • 42寸电视是多少厘米,电视42寸等于多少厘米

    电视42寸等于多少厘米,随着现在生活质量的越来越好,从原来的黑白电视上升为液晶屏电视,市面上的电视不同的大小、不同的品牌及外观是数不胜数的。然而,作为家居生活中不可缺少的家电之一,大家对32寸电视机尺

    2023年03月01 247
  • 页面设置怎么设置,word里的页面设置在哪

    表格打印,是日常工作中经常用到的一项工作。但excel打印过程中通常会遇到一些问题,word里的页面设置在哪,今天为大家总结一下Excel中关于打印的一些设置。,页面设置如上图设置页面的变距,方向,纸

    2023年02月06 299
  • 怎么激活苹果,初次使用苹果手机激活教程

    嵌入式SIM卡是将移动设备连接到网络提供商所需的物理SIM卡的行业支持的数字版本。这项技术目前可以在许多旗舰智能手机上找到,初次使用苹果手机激活教程,包括2018年以来的所有iphone,预计在未来十

    2023年02月08 235
  • 磁盘碎片怎么清理,电脑系统磁盘碎片需要清理吗

    我们在使用电脑的时候,经常会遇到电脑卡顿的,电脑系统磁盘碎片需要清理吗,运行速度慢的问题,除过自己电脑配置的问题之外,合理地对电脑进行适当地设置和维护,也能将电脑的效能发挥到最大,接下来我就讲解这个问

    2023年02月06 217
  • 微信怎么改头像,微信第二个身份怎么改头像

    哈喽大家好呀国庆假期马上就要来了,微信第二个身份怎么改头像,前几天小编就已经给自己换上国旗头像了看到有很多人在问我国庆头像怎么制作,那今天我就来给大家分享几个国庆节国旗头像制作教程,刚好过几天国庆节就

    2023年02月11 207
  • 怎么装固态硬盘,新买固态硬盘直接安上就行吗

    不管是台式电脑还是笔记本电脑,除了CPU和显卡之外,能对使用体验有明显提升效果的就是固态硬盘,它能让老电脑起死回生,新买固态硬盘直接安上就行吗,是提高用户体验的最低成本硬件。而且随着技术的成熟,SSD

    2023年02月11 264
  • 滴滴人工客服电话多少,滴滴400电话如何转人工

    滴滴400电话如何转人工,滴滴再次上线新的业务,开始往货运行业发展了。滴滴货运目前已经在全国多城市上线,对于有需要搬家等货运需求的人来说该平台非常便捷。那么,滴滴货运客服电话多少?不管是平台使用还是费

    2023年02月19 286
  • 顺丰起步价多少钱,顺丰快递起步价格多少钱

    2019年顺丰快递收费价格表顺丰快递在全国实行统一的收费标准,寄件同城10元,省内12元,省外20元。此价格均为首件起步价,如果超重需要加2-5元不等的续重费。但这种计费方式仅针对小件快递。大件省内件

    2023年03月01 299
  • 一箱苹果多少个,一箱苹果手机多少个

    【手机中国新闻】要说最近讨论热度火爆的手机,那自然是少不了iPhone13系列了。身为苹果的年度旗舰,一箱苹果手机多少个,iPhone13系列自正式发售那天起便一机难求,少数机型甚至需要加价上千才能买

    2023年03月20 253
  • 24寸照片是多少厘米,24寸照片有多大参照物

    24寸照片有多大参照物,说起寸这个词,具体的数据,想必很多网友都搞不清楚,那40寸婚纱照多大尺寸呢?肯定很多网友都不知道,那下面就随小编来具体了解下吧。40寸婚纱照多大尺寸24寸约为60厘米,因为1英

    2023年03月03 226
关注微信