rocketmq面试题及答案,java面试常见问题详解

TheDisguiser 2020-06-12 14:52:36 java常见问答 6018

Rocketmq是目前最火热的消息队列之一,学习java的同学在面试时一般都会被问到,这里小编整理了一些常见的rocketmq面试题及答案,快一起来瞧瞧吧。

一、说说你对 Namesrv 的了解?

Name Server 为 producer 和 consumer 提供路由信息

二、请说说你对 Broker 的了解?

Broker 接收来自生产者的消息,储存以及为消费者拉取消息的请求做好准备。

三、topic是什么?

Topic 是一种消息的逻辑分类,比如说你有订单类的消息,也有库存类的消息,那么就需要进行分类,一个是订单 Topic 存放订单相关的消息,一个是库存 Topic 存储库存相关的消息。

四、RocketMQ 是由哪些角色组成的?

生产者(Producer):负责产生消息,生产者向消息服务器发送由业务应用程序系统生成的消息。

消费者(Consumer):负责消费消息,消费者从消息服务器拉取信息并将其输入用户应用程序。

消息服务器(Broker):是消息存储中心,主要作用是接收来自 Producer 的消息并存储, Consumer 从这里取得消息。

名称服务器(NameServer):用来保存 Broker 相关 Topic 等元信息并给 Producer ,提供 Consumer 查找 Broker 信息。

五、RocketMQ执行流程有哪些?

1、启动 Namesrv,Namesrv起 来后监听端口,等待 Broker、Producer、Consumer 连上来,相当于一个路由控制中心。

2、Broker 启动,跟所有的 Namesrv 保持长连接,定时发送心跳包。

3、收发消息前,先创建 Topic 。创建 Topic 时,需要指定该 Topic 要存储在 哪些 Broker上。也可以在发送消息时自动创建Topic。

4、Producer 发送消息。

5、Consumer 消费消息。

六、请说说你对 Producer 的了解?

1、获得 Topic-Broker 的映射关系。

Producer 启动时,也需要指定 Namesrv 的地址,从 Namesrv 集群中选一台建立长连接。

生产者每 30 秒从 Namesrv 获取 Topic 跟 Broker 的映射关系,更新到本地内存中。然后再跟 Topic 涉及的所有 Broker 建立长连接,每隔 30 秒发一次心跳。

2、生产者端的负载均衡。

生产者发送时,会自动轮询当前所有可发送的broker,一条消息发送成功,下次换另外一个broker发送,以达到消息平均落到所有的broker上。

七、说说你对 Consumer 的了解?

1、获得 Topic-Broker 的映射关系。

Consumer 启动时需要指定 Namesrv 地址,与其中一个 Namesrv 建立长连接。消费者每隔 30 秒从 Namesrv 获取所有Topic 的最新队列情况,

Consumer 跟 Broker 是长连接,会每隔 30 秒发心跳信息到Broker .

2、消费者端的负载均衡。根据消费者的消费模式不同,负载均衡方式也不同。

以上就是今天的所有内容了,小伙伴们如果想知道更多有关java的面试题内容,请记得一直关注我们网站了解吧。

推荐阅读:

rocketmq事务消息原理有哪些?rocketmq是什么?

java反射机制面试题及答案整理,java反射面试题

java虚拟机面试题及答案整理