• Rocketmq消费面试总结


    1 事务消息

    并不是真正意义上分布式事务的实现,确保生产者本地事务完成后,一定会把消息发送到broker节点,至于该消息什么时候消费,生产者无法控制。

    适合的业务场景:生产者发送 半消息,发送成功后得到消息的UNIQ_ID作为事务ID,半消息就是broker会将原topic和queueid保存到properties里,然后保存到commitLog中。由于消费者这边订阅的是原topic,所以此时消费者还无法消费该消息。broker会把事务id和消息偏移量待会给生产者。

    生产者如果本地事务成功,会再次发消息,消息类型是commit,内容包括之前的偏移量,broker收到后,查找之前的半消息,从中取出来原topic和queueid,进行保存。这样原消费者就能够消费了。

    问 : 如果长时间broker收不到commit消息怎么办。

    broker有定时任务,会调用接口查询事务执行情况,如果回查成功还是会将半消息提交

  • 相关阅读:
    搭建 structs2 环境
    数据库基础
    好书推荐整理
    Java 完美判断中文字符
    中文在unicode中的编码范围
    [转载]爬虫的自我解剖(抓取网页HtmlUnit)
    web应用配置
    简单的Java Web服务器
    dos基本命令
    Unrecognized Windows Sockets error: 0: JVM_Bind
  • 原文地址:https://www.cnblogs.com/juniorMa/p/15260150.html
Copyright © 2020-2023  润新知