消息队列-八股文

  1. 消息队列选型-√
  2. kafka:
    优点:吞吐量高,性能高
    缺点:功能单一,有丢失消息的风险
    
    rocketMQ:
    优点:功能完善,性能好
    缺点:客户端仅支持Java
    
  3. RocketMQ事务消息实现-※
  4. RocketMQ底层实现原理-※
  5. 消息队列如何保证可靠传输
  6. 可靠传输:不能多 不能少
    1.消费者实现幂等性,哪怕多收消息,也能保证逻辑正常
    2.关闭自动提交,收发消息都要收到ACK确认
    
  7. 消息队列的作用
  8. 本身独立:    各功能解耦
    收发异步:    缓冲、削峰
    下游能处理:  异步通信
    下游不能处理:健壮性
    
  9. 死信队列和延时队列是什么
  10. 死信队列:没有成功消费的消息,可以用于消息重试
    延时队列:隔一段时间才发送消息,可以用于限时操作之类的判断
    
  11. 如何保证消息的高速读写
  12. 核心在于零拷贝
    
  13. 零拷贝是什么-※
  14. 零拷贝的定义在于 一块区域的数据需要迁移的时候,不再需要拷贝至用户空间,而是直接在内核空间完成操作
    核心在于两种方式:mmap  transfile[DMA方式]
    
    mmap:原本文件要拷贝至应用层,mmap则取消这个步骤,仅将数据映射引入到用户空间,数据本身不拷贝至用户空间
    transfile[sendfile]:数据映射都不引入用户空间,直接使用DMA,将数据在内核之中,直接写入到socket缓冲区,缓冲区直接迁移至目标区域
    
    两者区别:sendfile方式比mmap少了两次上下文切换
    
posted @ 2023-07-07 23:07  356a  阅读(20)  评论(0编辑  收藏  举报