![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务: MQ落地
文章平均质量分 67
康提扭狗兔
9年码龄,互联网童工,13岁自主创业,目前已月入0.3w+。
展开
-
MQ专题:延迟消息的通用方案
方案不依赖于MQ中间件,依靠MySQL和DelayQueue解决,不管大家用的是什么MQ,具体是RocketMQ、RabbitMQ还是kafka,本文这个方案你都可以拿去直接使用,可以轻松实现任意时间的延迟消息投递。由于延迟消息的时间不确定,若要达到实时性很高的效果,也就是说消息的延迟时间是不知道的,那就需要轮询每一秒才能确保消息在指定的延迟时间被处理,这就要求job需要每秒查询一次db中待投递的消息。此方案对中间件有依赖,不同的MQ实现是不一样的,若换成其他的MQ,方案要重新实现。原创 2024-08-30 00:15:44 · 686 阅读 · 0 评论 -
MQ专题:事务消息的实现方式
step5失败了,其他步骤都成功,此时业务执行成功,但是消息投递失败了,此时需要有个job来进行补偿,对于投递失败的消息进行重试。这个job负责从本地t_msg表中查询出状态为0记录或者失败需要重试的记录,然后进行重新投递到MQ。对于投递失败的,采用衰减的方式进行重试,比如第1次失败了,则10秒后,继续重试,若还是失败,则再过20秒,再次重试,需要设置一个最大重试次数,最终还是投递失败,则需要告警+人工干预。原创 2024-08-29 13:44:51 · 120 阅读 · 0 评论