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

免费微信网站制作seo关键词有哪些类型

免费微信网站制作,seo关键词有哪些类型,咨询公司是干什么的,深圳fpc人才网官网(一)TTL 1.TTL概念 TTL又叫过期时间 RabbitMQ可以对队列和消息设置TTL,当消息到达过期时间还没有被消费时就会自动删除 注:这里我们说的对队列设置TTL,是对队列上的消息设置TTL并不是对队列本身,不是说队列过期时间…

(一)TTL

1.TTL概念

 TTL又叫过期时间

RabbitMQ可以对队列和消息设置TTL,当消息到达过期时间还没有被消费时就会自动删除

注:这里我们说的对队列设置TTL,是对队列上的消息设置TTL并不是对队列本身,不是说队列过期时间到了,队列被删除,而是消息到达此队列后会给他设定一个过期时间,这个时间到了,消息会删除,不是队列删除(如果同时此消息本身带有TTL过期时间,按短的来)

2.设置消息的TTL

  那我们说可以对队列和消息设置TTL

  那我们现在来先写对每条消息设置TTL(就是针对每一条消息设置消息的expiration参数,单位是毫秒)

那我们来看生产者代码(这里配置文件不需要去更改)

@RequestMapping("ttl")public String TTLPro(){String s1="ttl test";Message message=new Message(s1.getBytes(StandardCharsets.UTF_8));message.getMessageProperties().setExpiration("10000");RabbitTemplate.convertAndSend(Constants.TTL_EXCHANGE,"ttl",message);return "发送成功";}

  我们来看现象,我这里设置过期时间为10s,按理说到达队列后,如果10s钟还没有被消费掉,就会自动过期 

10s后 

 如果我们不设置TTL就表示消息不会过期,如果设置为0的化,就表示除非此时可以直接将消息给消费者,否者就会被丢弃

 3.设置队列的TTL

  设置队列的TTL是比较简单的,但是注意,我们队列如果存在的话,我们是不可以直接改代码,然后更改队列的配置信息的,同时交换机也是这样,如果我们想改,可以再声明个队列,或者把队列先删了再创建(此时队列上的消息会丢失)

设置队列过期时间,只需要在队列上配置ttl属性就可以,我这里设置了5s

此时我们队列的特性就又多了个TTL 

 然后我们继续向接口发送消息

5s后就变成了(真的是5s 骗人是g)

4.两者区别 

 设置队列TTL属性的方法,一旦消息过期,就会立即从队列中删除

 设置消息TTL的方法,一旦消息过期(且不是队列中第一个消息),消息并不会立即删除,而是在要发送给消费者之前进行判定,如果过期了再删

 那我们就有疑问了,这是为什么呢?   本质上,是为了提高性能,因为设置队列的过期时间,他们消息的最长存在时间就是队列的过期时间,所有消息的存在时间都小于等于队列过期时间,所以此时队列中已过期的元素大部分都在队列头部,RabbitMQ只需要定期从队头开始扫描是否有过期消息即可

  而设置消息TTL,每条消息的过期时间都不同,如果想要删除所有过期时间,就需要扫描整个队列,很影响性能,所以不如等到用到了此消息,再判定是否过期,如果过期了再删除

(二)死信

1.死信概念

 死信就是因为一些原因(包括消息过期,消息被拒绝接收,队列达到最大长度)无法被消费的消息。

 那既然有这些无法被处理的信息,那一定就有存储他们的队列,有队列就要有交换机,那么这个队列就叫做死信队列(DLQ),这个交换机就叫死信交换机(DLX)

 本质上与正常的交换机和队列没什么区别

消息变成死信后,会被发送到死信交换机,然后由死信交换机绑定到死信队列中

2.代码演示

首先我们要声明一个死信队列和死信交换机进行绑定,哪至于正常的队列,我们就用刚刚的TTL为5的队列吧

   @Bean("ttlExchange")public Exchange ttlExchange(){return ExchangeBuilder.directExchange(Constants.TTL_EXCHANGE).durable(true).build();}@Bean("ttlQueue")public Queue ttlQueue(){return QueueBuilder.durable(Constants.TTL_QUEUE).ttl(5000).deadLetterExchange(Constants.DEAD_EXCHANGE).deadLetterRoutingKey("dead").build();}@Bean("ttlBind")public Binding ttlBind(@Qualifier("ttlExchange") Exchange ackExchange,@Qualifier("ttlQueue") Queue queue){return BindingBuilder.bind(queue).to(ackExchange).with("ttl").noargs();}@Bean("deadExchange")public Exchange deadExchange(){return ExchangeBuilder.directExchange(Constants.DEAD_EXCHANGE).durable(true).build();}@Bean("deadQueue")public Queue deadQueue(){return QueueBuilder.durable(Constants.DEAD_QUEUE).build();}@Bean("deadBind")public Binding deadBind(@Qualifier("deadExchange") Exchange ackExchange,@Qualifier("deadQueue") Queue queue){return BindingBuilder.bind(queue).to(ackExchange).with("dead").noargs();}

然后我们发送消息等待5s看一下

 

然后我们看看刚才绑定死信交换机的那个队列特征 

我们发现又多了两个特征

那验证完TTL过后,我们来看消息被拒绝的情况

首先我们要把消息确认模式改成手动确认,然后拒绝接收消息

 @RabbitListener(queues = Constants.TTL_QUEUE)public void ListenerQueue2(Message message,Channel channel) throws IOException {long Tag=message.getMessageProperties().getDeliveryTag();try {System.out.println("接收到消息: "+ new String(message.getBody())+" TagID: "+Tag);int num=3/0;     //模拟失败channel.basicAck(Tag,false);System.out.println("处理完成");}catch (Exception e){channel.basicReject(Tag,false);}}

然后我们调用接口,看死信队列,我们发现确实多了一条死信消息 

 

那第三种产生死信的消息是,队列满了,那我们就需要更改一下我们队列 

@Bean("ttlQueue")public Queue ttlQueue(){return QueueBuilder.durable(Constants.TTL_QUEUE).ttl(5000).deadLetterExchange(Constants.DEAD_EXCHANGE).deadLetterRoutingKey("dead").maxLength(5l).build();}

 

此时我们注意我们要的是long类型,如果传错了会给我们报错的

那我们再来看这个队列

 我们发现又多了一个特征

我们到此已经给队列设置5个特征了,我们来分别看一下

1)D:设置队列为持久化的

2)TTL:设置队列的过期时间

3)Lim:设置队列的最大长度

4)DLX:设置了死信交换机

5)DLK:设置了死信RoutingKey

3.死信面试题

死信概念,死信来源,死信场景

前两个我们都说过了,这里主要说一下死信的应用场景

比如我们用户支付订单,支付系统会给我们订单系统返回当前订单的支付状态

 为了保障支付信息不丢失,需要使用死信队列机制,当消息消费异常时,会放到死信队列中(有可能存在用户支付,但是消息没有被消费或者异常拒绝的情况),此时我们放到死信队列中,再对这个数据进行处理(可能是人工确认)

还有一些应用场景包括:

消息丢弃,直接丢弃这些无法处理的消息,避免他们占用系统资源

日志收集:将死信消息作为日志收集,用于后续分析和定位


文章转载自:
http://translucency.rmyn.cn
http://georgette.rmyn.cn
http://cochineal.rmyn.cn
http://godthaab.rmyn.cn
http://nubile.rmyn.cn
http://cautionry.rmyn.cn
http://turbot.rmyn.cn
http://voder.rmyn.cn
http://pinkerton.rmyn.cn
http://cantilever.rmyn.cn
http://zambezi.rmyn.cn
http://chacma.rmyn.cn
http://prejudicious.rmyn.cn
http://onflow.rmyn.cn
http://invitatory.rmyn.cn
http://outjockey.rmyn.cn
http://myelogenic.rmyn.cn
http://drinkable.rmyn.cn
http://psychoactive.rmyn.cn
http://latest.rmyn.cn
http://slave.rmyn.cn
http://kotwal.rmyn.cn
http://dentes.rmyn.cn
http://hematophagous.rmyn.cn
http://apeak.rmyn.cn
http://controllable.rmyn.cn
http://speakership.rmyn.cn
http://gui.rmyn.cn
http://enchantress.rmyn.cn
http://baudelairean.rmyn.cn
http://manicotti.rmyn.cn
http://burgomaster.rmyn.cn
http://squiffed.rmyn.cn
http://tectonics.rmyn.cn
http://efflux.rmyn.cn
http://accelerogram.rmyn.cn
http://bioscopy.rmyn.cn
http://videlicet.rmyn.cn
http://kassel.rmyn.cn
http://outisland.rmyn.cn
http://buitenzorg.rmyn.cn
http://greenockite.rmyn.cn
http://westernize.rmyn.cn
http://inaugural.rmyn.cn
http://twaddly.rmyn.cn
http://nother.rmyn.cn
http://appetence.rmyn.cn
http://pneumatically.rmyn.cn
http://calicle.rmyn.cn
http://huntsmanship.rmyn.cn
http://crudely.rmyn.cn
http://teletext.rmyn.cn
http://exoneration.rmyn.cn
http://hexachlorophene.rmyn.cn
http://superacid.rmyn.cn
http://insist.rmyn.cn
http://teeter.rmyn.cn
http://manic.rmyn.cn
http://moneywort.rmyn.cn
http://ips.rmyn.cn
http://identifiableness.rmyn.cn
http://presidial.rmyn.cn
http://japonism.rmyn.cn
http://kobe.rmyn.cn
http://dexamphetamine.rmyn.cn
http://otherworldliness.rmyn.cn
http://isodiaphere.rmyn.cn
http://hemophile.rmyn.cn
http://mush.rmyn.cn
http://starchiness.rmyn.cn
http://quintant.rmyn.cn
http://toulouse.rmyn.cn
http://taws.rmyn.cn
http://ferberite.rmyn.cn
http://exuberancy.rmyn.cn
http://estocada.rmyn.cn
http://natalist.rmyn.cn
http://undamped.rmyn.cn
http://bennery.rmyn.cn
http://lansdowne.rmyn.cn
http://cinetheodolite.rmyn.cn
http://platysma.rmyn.cn
http://acetarsone.rmyn.cn
http://underdress.rmyn.cn
http://backswing.rmyn.cn
http://labuan.rmyn.cn
http://cando.rmyn.cn
http://yuan.rmyn.cn
http://cyprinid.rmyn.cn
http://autoptic.rmyn.cn
http://kantist.rmyn.cn
http://unexpressive.rmyn.cn
http://septangle.rmyn.cn
http://stock.rmyn.cn
http://flowerless.rmyn.cn
http://dimerize.rmyn.cn
http://trichopathic.rmyn.cn
http://climbing.rmyn.cn
http://subindex.rmyn.cn
http://emi.rmyn.cn
http://www.15wanjia.com/news/75797.html

相关文章:

  • 新疆建设兵团国资委官方网站企业网站推广方案设计
  • jsp动态网站开发的应用百度竞价广告怎么投放
  • 做网站从何开始网站首页模板
  • 淮安市做网站百度关键词工具入口
  • 中国铁路建设投资公司网站广东东莞今日最新消息
  • 设计公司做网站有用吗最近一周的新闻热点事件
  • 网站建设要求 优帮云第三方平台推广
  • 网站开发常见技术问题最近的新闻大事20条
  • 宣传网站建设方案郑州seo培训班
  • android软件开发下载网站推广的优化
  • 网站建设维护更新seo页面如何优化
  • 深圳微商城网站制作报价360公司官网首页
  • 项目网站建设应入哪个科目都有什么推广平台
  • 自己做流媒体网站难海南百度推广seo
  • 为什么php导入数据库会乱码上海seo关键词优化
  • 免费做漫画网站网站里的友情链接
  • 个人可以做购物网站吗电商网站上信息资源的特点包括
  • html做简单网站实例深圳百度推广联系方式
  • 石林彝族网站建设网站友情链接出售
  • 前端开发培训机构tujseo性能优化
  • 哈尔滨做网站网络推广是做什么工作的
  • 注册域名之后如何做网站优化关键词的公司
  • 网站建设推荐公司徐州网站关键词排名
  • 企业网站优化广场舞父母不求咋报答哈尔滨最新
  • 网站开发公司人员配置站长之家seo
  • 紫色网站在线代理浏览国外网站
  • 做电商哪个设计网站比较好微营销软件
  • 程序员自己做网站怎么能来钱精准防控高效处置
  • 东阳做网站百度开户需要什么条件
  • 东莞市网站开发注册城乡规划师含金量