消费者服务中的异常管理(微服务架构)

问题描述 投票:0回答:0

我们有一个由三个表组成的微服务,它的数据由事件填充,这些表相互关联,出于任何原因,我们收到一条消息,其中包含另一个表的外键,但主消息表仍然在 数据库没有保存,在这种情况下我们会得到一个错误(来自 SQL),在这种情况下应该如何管理问题?

样本:

1。角色(身份证,姓名)

2。权限(Id,RoleId,名称)

Role-Queue -> Message ( Id = 2, Name = "...") |后者

Permission-Queue -> Message ( Id = 1, RoleId = 2, Name= "..." ) |前进

我是这样处理这个case的,反正这个异常是存在的,只要数据库中有[Role]没有创建的消息,[Permission]实体的Consumer就必须重试(Reject message from RabbitMQ & requeue),在数据库中创建了[Role]实体消息的情况。 , 下一次消费者重试消费一个 [ Permission ] 时,可以将消息插入数据库

c# asp.net-core rabbitmq microservices consumer
© www.soinside.com 2019 - 2024. All rights reserved.