美文网首页
Java知识框架 - 消息中间件

Java知识框架 - 消息中间件

作者: 码畜的快乐源泉 | 来源:发表于2020-03-09 18:19 被阅读0次
  • RocketMQ

    • 同步复制、异步刷盘 - 复制:主从节点之间的数据复制过程、刷盘:应用程序常驻内存数据刷到磁盘的过程
    • 生产者&消费者模型
    • RocketMQ核心概念零拷贝技术
    • 分布式事务
    • 双主双从高性能集群
  • Kafka - 不支持批量和广播消息,运维难度大,文档比较少

  • RabbitMQ - 使用Erlang开发,阅度和修改源码难度大

  • ActiveMQ - 吞吐量不高

  • ZeroCopy零拷贝技术

    • 文件读取并发送出去的4次copy


      image.png
    • ZeroCopy - kernel直接把disk的data传输给socket,而不通过应用程序的传输


      image.png
  • 为啥使用消息队列 - 异步、解耦、削峰填谷

  • 怎么避免重复消费 - RocketMQ不保证,需在业务端去重

  • RocketMQ高性能原因 - 顺序写、随机读、零拷贝

  • RocketMQ如何保证消息的顺序执行 - 发送到同一个Topic的同个queue里面,RocketMQ可以保证FIFO

  • RocketMQ如何保证消息的可靠性传输

    • Producer端 - 不采用oneway发送(只负责发送消息,不等待回应)、使用同步或者异步方式发送、做好重试
    • Broker端 - 双主双从架构,NameServer需要多节点
    • Consumer端 - 消息消费务必保留日志、消费端务必做好幂等性处理
  • 消息堆积了10个小时,有几千万条消息待处理,现在怎么办?

    • 编写临时处理分发程序,从旧topic快速读取到临时新topic中,新topic的queue数量扩容多倍,然后再启动更多consumer进行在临时新的topic里消费

相关文章

网友评论

      本文标题:Java知识框架 - 消息中间件

      本文链接:https://www.haomeiwen.com/subject/cqxmdhtx.html