U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 常见问题解答 >

RabbitMQ常见问题解决方案

来源:http://www.tudoupe.com时间:2022-05-04

上个博客报导了RabitMQ服务的设置和简便介绍,
如果要将兔子MQ用于生产,就必须评估和处理许多困难。

目录

  • 消息转换器

  • 制作人如何确保信息不被误解?

  • 客户如何保护自己免受数据丢失的影响?

  • 消息预取

  • 死信交换机

消息转换器

原始的 RabibitMQ 只能传输字节阵列, 但是当与 SpringBoot 结合时, Spring 允许开发者传递对象, 因为 Spring 在发送和接收信件方面做了一些工作 。

标准电文转换器是:SimpleMessageConverter转换的一般理由如下:

  • 如果请求的内容类型是text点击头部然后将信件转换为字符串。确定是否在切换前提供字符集,如果不是,则确定默认字符集。UTF-8转换。
  • 如果内容为内容, 类型等于application/x-java-serialized-object信息将按序发送到爪哇。
  • 如果下列要求得不到满足,则不会转换,传输将以同样方式继续进行。

自定义消息转换器

如有必要,您也可以自行选择执行信件转换器。
创建类实现MessageConverter接口,生产者实现toMessage方法,消费者实现fromMessage方法。

模板配置配置自定义转换器

制作人如何确保信息不被误解?

这一信息被有效地分为两类:

  • 经纪人已经收到消息了
  • 信件已成功转发到队列 。

一般而言,从操作的角度来看,信息只有在发送到Quue才成功。

RabbitMQ在这两起案件中两次返回:Confilm回击和回击。

ConfirmCallback

确认回召是担心“如果消息到达Broker或未到达”,

在向Broker发送信息后,RabbitMQ在答复时通知生产商已经收到这一信息。

代码实现

开启发送者确认

无法将信件附加到 mh 文件夹:%s:%s

设置发送确认回声的模板设置

当用户注册成功时, 接口会发送邮件操作代码 。

请求提出,控制表如下图所示:
在这里插入图片描述

dtoa到达了Broker,但很难确定它是否被转送到Quue,这就需要使用回击。

ReturnCallback

ReferCallback 关注信件是否被成功传送到队列, 通常与 ConfilmCallback 一同使用 。

如果经纪人已经收到消息了但是没有被路由到Queue,则会触发ReturnCallback。例如:Exchange没有绑定Queue。
反之,回响回响, 将不会有触发器。

mandatory

RabbitMQ像路由器一样接收信息,并根据需要开展各种活动,但默认情况下会作假。

如果需要伪造,兔子MQ如果无法转发数据,它只会忽略数据。
如果信件无法追踪, RabibitMQ 将使用 Basic. return 并请求将数据还给制片人。

代码实现

开启发送者确认

编写消息失败回调类

启动所需的模式并配置回声示例 。

发送信件后, 错误的根键被设置, 控制表看起来是这样 :
在这里插入图片描述

设置适当的根基密钥,不引用回调 。

备用交换机

您可以在声明开关时指定属性 :alternate-exchange安装备用开关 。
当无法将信件发送到 Quue 时,RabbitMQ 将其发送到替代开关路径,该通称“FANOUT类型保证信件被发送到 Quueu 。

必须指出,如果信息在主开关中没有领先,只要备份开关中的领先成功,Retrn Callback的返回就不会触发。
如果主开关或备用开关都无法成功,宣布备用开关只能导致回响回响回响。

总结

ConfirmCallback针对消息没有到达Broker的回调处理,ReturnCallback针对经纪人已经收到消息了但是没路由到Queue的回调处理。
通常使用两者并用,以确保所有电文均无损失地传送。

RabitMQ也支持这项服务,并且可以确保信息不会丢失,但是服务开业后的表现严重退化,不建议使用。

客户如何保护自己免受数据丢失的影响?

为了保证信息不会丢失,消费者除了确保制造商100%传达信息之外,还必须确保信息不会丢失。

RabitMQ 校验模式的讯息 :

  • AcknowledgeMode.NONE
  • AcknowledgeMode.MANUAL
  • AcknowledgeMode.AUTO

默认是自动确认,即当消费者删除信件时, 队列会删除信件, 不论消费成功与否 。

如果数据需求不大,例如日志记录,即使缺少一些日志,也可以使用自动确认来保证最佳性能。

但是,如果数据要求十分严格,则必须使用人工确认。

消息手动确认

当消费者以手动确认模式撤回电文时, 队列不会删除电文, 而是将电文状态更改为Unacked除非能证明客户能够获得消费知识,否则他们可以成功或失败。

信件成功消耗后, 通知 Rabibit MQ, 从队列中删除信件 。

当消费失败时,有两种选择:通知RabbitMQ将信息重新收录并分发给其他消费者,或认为信息是数据浪费并销毁数据。

不论摄入是否成功,或是否成功,都必须加以确认;否则,信息仍将未经证实。Unacked州政府, 堆积在等待。

信息在客户收到后是否会丢失?

否,即使消费者收到电文, 队列也不会以手动确认模式删除电文 。Unacked待确认。
Labbit MQ通过将信息状态改变为状态来确认这一点。Ready分发给其他消费者。

虽然没有信息损失,但还有一个问题:重复新闻消费。

例如,如果消费者获得的信息已成功消费,但服务在新闻确认前出乎意料地失败,RabitMQ会认为该新闻没有得到适当消费,并将传播给其他消费者,结果新闻被重新利用,由“消息等”处理,以后再提供。

手动激活信件或使用 yml 激活 。

消费者:信息确认和返回

消息预取

在讨论预先提供信息之前,应提及传播拉比比MQ信息的过程。

默认情况下,LabitMQ将信息全天24小时传送给消费者,即使消费者无法吸收。
这将确保LabitMQ不会因为信息积累而对业绩产生不利影响,但不会特别方便用户。

例如,在Quueu有100条留言。两个客户在同一时间开始。RabbitMQ会立即向每个客户发送50条信息。假设客户A很强大一个S可以吃掉多达50条信息。而消费者B性能弱,完全消费需要10S消费者A这次是免费的。消费者B会非常忙A的能力没有得到适当的利用。

预发资料的配置可以反映消费者的现实情况,当预发资料打开时,兔子Q不会直接发送所有资料,而是根据规定的预先要求的数额,只有在消费者经过充分处理后才进行下一轮分发。

例如,在Quue的100条信息中,消费者消费的一条信息需要1S,一条信息先发制人,RabitMQ每秒发出一条信息,如下图所示:
在这里插入图片描述

信息打开后,也可以分批核实,这样可以提高性能。

设置消息预取的数量

消息批量确认

预先篡改的信息数量需要适当的价值,对于性能不佳来说,这种价值太少,不能说明性能不佳,但对于数据可靠性来说则太高,或者对于性能高但数据可靠性低来说太大。

消息重复消费

当信息打开时,可能会出现“外交消费”问题。
收集了100条信息,99条成功被吃掉,该系统在消费时受到惊吓,LabitMQ将再向其他消费者发送100条信息。

兔子Q并不提供公司必须自行解决的解决办法,共同的解决办法包括:

  • 包含字段的数据库表格将消费指标分开。
  • Rediis用于保存成功的消费标签。

死信交换机

“ 死亡的换文” 可以分配到队列 。dead-letter-exchange如果新闻是这样的,拉比比特MQ 将再次将它传送到死讯 交换改道。

  • 对不起,我听不懂你在说什么
  • 消息过期(TTL)
  • 超过最大队列限制的(x-最大长度)信件被删除。
  • 超过最大队列限制,则删除信件总大小(x-max-max-长字节) 。

如果数据处于这种状态,如果RabitMQ预计不会销毁该电文,则可以通过建立已绝电的换文来保存该电文。

当电文无法被消费者正确吸收时,将使用一纸空文交换方式将电文发送到另一队列,以便重新测试或人工干预。

宣布队列, 建立死字母交换, 并发送信件到线条交换处, 以便在队列过期时改道到队列 。

如预期的那样,该信息被退回。

避免死循环

兔兔的使用需要额外的护理以避免死亡循环,而且新闻永远无法被完全消耗,然而兔子Q继续向消费者发送信息,造成死亡循环,例如:

  • 当只有一个消费者时,新闻就恢复,新闻就恢复到Quue。
  • 原封不动字母的开关是Quue的

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息