首页 > 其他分享 >消息队列-八股文

消息队列-八股文

时间:2023-07-07 23:11:06浏览次数:33  
标签:八股文 队列 mmap 用户 死信 消息 拷贝

  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少了两次上下文切换
    

标签:八股文,队列,mmap,用户,死信,消息,拷贝
From: https://www.cnblogs.com/dengliang356a/p/17536367.html

相关文章

  • mybatis-八股文
    mybatis的优缺点-※优点:1.SQL写在XML里面,与业务代码分离,因此相对比较灵活,便于统一管理2.spring集成很方便,由于使用的JDBC连接数据库,因此,不需要针对不同数据专门做兼容缺点:SQL的编写,SQL的语法都强关联数据库的类型,因此,无法随意切换数据库mybatis中#{}和${}的区别?#的......
  • 数据库-八股文
    索引的基本原理-√1.索引对应列进行排序2.将排序结果建立倒排表3.将数据地址链拼接到倒排表上4.查询的时候,拿到倒排表,查询到数据地址链,最后取到需要的数据索引的设计原则1.类型不多的列没必要建索引,占空间,效果还不好2.由于索引也是要占空间的,而且索引建立完毕以后,之后......
  • spring-八股文
    对IOC的理解inverseofcontrol,控制翻转,将bean的生成交给spring管理,例如,@autowired自动装配的mapper层对象。好处:单例bean可以有效复用,减少对象生成的时间成本。各种bean还有自身的应用场景。单例bean与单例模式spring自动装配出来的对象全都会指向同一个单例bean,不强制约......
  • Java-八股文
    hashcode()、equals()1.如果hashcode()不相同,两个对象一定不是同一个对象2.如果hashcode()相同,两个对象不一定上同一个对象,需要进一步判别equals3.如果equals相同,应当认为两个对象就是相同对象由于hashcode方法仅返回一个值,equals里面有若干逻辑,因此,部分集合类的判断中,会优先......
  • BZOJ 1915: [Usaco2010 Open]奶牛的跳格子游戏 单调队列优化dp
    1915:[Usaco2010Open]奶牛的跳格子游戏TimeLimit: 4Sec  MemoryLimit: 64MBSubmit: 281  Solved: 110[Submit][Status][Discuss]Description奶牛们正在回味童年,玩一个类似跳格子的游戏,在这个游戏里,奶牛们在草地上画了一行N个格子,(3<=N<=250,000),编号为1..N......
  • RunnerGo集成三方消息通知,可配置到性能测试定时任务
    测试人员在配置自动化测试、性能测试脚本时需要配置测试报告通知人,近期更新中RunnerGo消息通知已接入第三方,在配置测试报告通知人时可以选择飞书、企业微信、钉钉、邮箱。本篇文章会介绍如何配置RunnerGo的三方消息通知。RunnerGo目前支持创建飞书群机器人、飞书企业应用,企业微......
  • 微信模板消息推送封装方法
    /***@explain*发送消息通知*@returnarray|mixed*@remark*获取到用户的openid之后可以判断用户是否有数据,可以直接跳过获取access_token,也可以继续获取access_token*access_token每日获取次数是有限制的,access_token有时间限制,可以存储到数据库7200s.7200s后access......
  • 如何实现Java mqtt 客户端,收到自己发出消息的具体操作步骤
    实现JavaMQTT客户端收到自己发出的消息介绍在本文中,我将教会你如何使用Java实现一个MQTT(MessageQueuingTelemetryTransport)客户端,以接收自己发出的消息。MQTT是一个轻量级的消息协议,广泛应用于物联网和实时通信领域。我们将使用EclipsePaho库来实现这个功能。整体流程下面......
  • redis的订阅发布功能中,前端如何监听到消息,并修改前端页面。
    ......
  • SpringBoot集成kafka收发消息——传递消息为对象
    目前springboot整合后的kafka,因为序列化器是StringSerializer,这个时候如果需要传递对象可以有两种方式方式一:可以自定义序列化器,对象类型众多,这种方式通用性不强。方式二:可以把要传递的对象进行转json字符串,接收消息后再转为对象即可,本项目采用这种方式JSON.toJSONString(user)......