RocketMq高频面试题
时间: 2023-08-01 22:10:13 浏览: 116
JAVA高频面试题.docx
1 RocketMQ 是什么?它的主要特点是什么?
RocketMQ 是一个开源的分布式消息传递平台,由阿里巴巴集团开发和维护。它具有高可靠性、高性能、可扩展性强等特点。
2. RocketMQ 的消息模型是什么样的?
RocketMQ 的消息模型是基于发布-订阅模式的,包含生产者(Producer)、消费者(Consumer)和中间件(Broker)三个角色。
3. RocketMQ 的主要组件有哪些?
RocketMQ 主要包含了以下组件:
- NameServer:负责管理 Broker 的路由信息。
- Broker:负责存储和转发消息。
- Producer:消息的生产者。
- Consumer:消息的消费者。
4. RocketMQ 支持哪些消息传递模式?
RocketMQ 支持以下几种消息传递模式:
- 同步传输:生产者发送消息后等待 Broker 的响应。
- 异步传输:生产者发送消息后不等待响应,通过回调函数处理响应结果。
- 单向传输:生产者发送消息后不等待响应,无需回调函数。
5. RocketMQ 如何保证消息的可靠性传输?
RocketMQ 通过持久化消息、冗余存储、主从复制等机制来保证消息的可靠性传输。当消息发送成功后,会将消息持久化到磁盘,并进行主从复制,确保消息不会丢失。
6. RocketMQ 的消息顺序如何保证?
RocketMQ 提供了顺序消息的支持,可以通过设定消息的 Key 或者使用 FIFO(先进先出)的方式来保证消息的顺序性。
7. RocketMQ 的高可用性是如何实现的?
RocketMQ 通过使用主从复制机制来实现高可用性。每个 Topic 都可以配置多个 Broker 实例,其中一个为主节点,其余为从节点。当主节点宕机时,从节点会自动接管。
8. RocketMQ 的扩展性如何?
RocketMQ 的扩展性非常强,可以通过增加 Broker 节点来实现水平扩展。同时,RocketMQ 也支持多线程消费,可以提高消费能力。
9. RocketMQ 支持哪些消息过滤方式?
RocketMQ 支持根据 Tag、SQL92 表达式和 SQL92 Function 进行消息过滤。
10. RocketMQ 在分布式事务中的应用有哪些?
RocketMQ 提供了事务消息的支持,可以保证消息的生产和消费在同一个本地事务中。如果事务成功提交,则消息正常发送;如果事务失败回滚,则消息不会发送。这样可以保证消息与业务数据的一致性。
阅读全文