消息一致性实现方案

 

各模块概述:

 

  1. 生产者向消息服务子系统发送待确认消息,若收到正常回复,则继续执行业务,否则不执行。消息服务子系统收到消息后将消息进行存储本地。
  2. 生产者执行完业务后发送确认/取消发送消息,消息服务子系统将对应的消息状态改成发送中,并向MQ发送消息。取消发送直接删除。
  3. 消费者收到消息后处理并直接返回应答。
  4. 消费者处理成功后,反馈消费服务子系统,消费服务子系统将对应消息删除。
  5. 消息定时确认服务,(1)用于定时检测消息服务子系统中待确认消息,通过消息id或其他字段向生产者确定消息是发送还是取消。(2)用于定时检测发送中消息是否消费成功,通过消息id或其他字段向消费者确定消息状态。
  6. 消息管理子系统用于管理异常状态中的消息,如死亡消息支持手动发送。删除错误消息等。

 

设计中注意点:

 

  1. MQ设置:(1)接收直接应答  (2)发送失败尝试次数可以设置0或1  

 

  1. 消费者:(1)幂等性设计,可以通过业务id+其他字段判断,特殊情况下也可以通过增加消息表查询判断,保证消息只处理一次。

 

3、消息定时确认服务:(1)设置最大发送次数  (2)发送时间间隔  (3)数据较多时采用分页查询并按时间升序

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值