mq 面试题

一、mq的使用场景:
①、解耦 比如:订阅消息,异步处理逻辑
②、异步化处理 ,有些场景无需同步调用,可以通过消息队列异步处理
无需直接依赖 jar,其次失败可以重试
③、削锋做一个缓冲,然后一个个处理
大流量场景可以缓存处理请求
④、延迟队列
⑤、分布式事务
本地事物表 + 消息队列 (轮询补偿)
事务消息

二、开发中如何保证消息有序性
通常可以发送消息时,将其发送一个指定的分区,一般情况下消息都是局部有序的

三、发送者写入消息,如何保证可靠性
通常都是主数据和副本数据都写入成功,这种可保证数据不丢失,但性能一般,kafka 通过 ack 保证 leader 和 follower(副本节点) 都写入成功,rocketmq 写入时采用同步双写保证( 保证master 和 slave都写入成功)

四、为什么kafka 读取写入非常高效
1、批量写入、批量拉取
2、零拷贝(磁盘映射,无用户态和内核态切换)、顺序写
3、多路复用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。