当前位置: 首页 > 网络应用技术

如何确保RocketMQ消息不会丢失

时间:2023-03-06 02:11:46 网络应用技术

  不允许金融系统中MQ消息的丢失,并且该消息的丢失将导致付款状态订单状态是混乱的。LET关于如何确保MQ消息不会丢失的话题。以作者公司使用的RocketMQ为例。

  MQ消息已在消费的三个阶段生成:MQ消息生产,RocketMQ代理存储消息和消费者消息对应消息。如下所示:

  从上图,我们可以知道,消息的丢失将主要发生在以下位置:

  解决丢失消息的地方的消息丢失。

  3.1消息生产以防止消息失去RocketMQ消息生产方法:同步发送消息,异步发送消息,单向发送消息。以不同方式发送不同的场景:不同的方案:

  重要通知(订单状态更新),SMS系统。

  它通常用于响应敏感的业务情况。

  它主要用于具有低可靠性要求的场景,不适用于财务场景。通常用于日志收集。

  根据上述三种发送方法的特征,消息发送模式本身是不会丢失消息而不会丢失。如果将系统发送到无法使用丢失的消息的方式。发送消息状态以确定消息是否已发送给经纪人。在这里,选择同步发送或异步发送消息以查看业务需求的选择。同步发送对发送后时间的要求并不那么敏感。同步发送对消息的返回时间很敏感。

  SendResult定义描述(来自RocketMQ官员)

  3.2 RockEtMQ经纪人反向通信消息首先了解经纪人集群部署模式(官方计划)。

  单个主模式

  这种方法是有风险的。一旦经纪人重新启动或不利,它将导致整个服务不可用。不建议使用在线环境并可用于本地测试。

  多主模式

  没有奴隶簇,所有这些都是主人,例如2个大师或3个大师。该模型的优点和缺点如下

  多主机多奴隶模式 - 同步复制

  每个主人都配备了一个奴隶,有许多主奴隶,HA使用异步复制方法,并且主储备有一个简短的消息延迟(毫秒)。此模式的优点和缺点如下

  多主手多奴隶模式同步双重写作

  每个主人都配备了一个奴隶,有许多主奴隶对,HA使用同步的双重写作方法,也就是说,在返回应用程序成功之前,只有杰作才能成功地写下。该模型的优势和缺点如下:

  如果您不想在新闻中丢失,那么您需要配置消息同步刷盘,并在多主机多奴隶模式模式同步二重奏的情况下配置同步刷磁盘。

  3.3消费 - 侧处理消息社会消费示例代码如下:

  处理消息时,不应是消息处理失败的状态。如果消息处理失败,则无法再次调用消息。在经纪人的意见中,它已完成。

  MQ消息的丢失主要发生在发送,存储和消费消息的三个阶段,因此有必要防止消息丢失并从这三个方面开始。

  我是蚂蚁背大象。这篇文章将帮助您并关注我。如果您的位置不正确,请留言发表评论?谢谢!

  原来的;https://juejin.cn/post/7103549538018787365