开发者学堂课程【RocketMQ 知识精讲与项目实战(第三阶段):消息消费启动流程】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/704/detail/12494
消息消费启动流程
消息消费启动流程
消费者的一个启动流程,在启动的时候它都做了哪些事情,以推模式作为讲解的例子,推模式应该找哪个类?它应该找的是DefaultMQPushConsumer这个类,启动要找 start 方法,在 start 方法当中启动逻辑是封装到了IMPL这么一个类当中,在这个类里面都做了哪些事?
首先它去检查一下消息消费的一个合法性,去做了一个消息消费的合法性的一个检查,检查一下这些必要的信息。然后去做了一个构建主题的订阅信息,通过这么一个方法去构建了订阅的主题。紧接着它就是构建了客户端与服务端进行交互的一个重要的类,通过这个类可以去请求 RocketMQ的服务端。紧接着下边构建了负载均衡实现的服务,把负载均衡实现的服务进行了一个对应的构建,这里设定了这个负载均衡的一个策略等等。然后下边是基于当前消息的模式去确定一下消息的进度存储的位置,如果是广播模式,那么这个消息的消费的进度存储到本地,如果是集群模式,它把这个消息的一个消费进度存储到远端,整个的都设置完了之后,紧接着创建了消息消费服务,把消费服务创建出来了。如果顺序消息,那么它就创建了consumer message orderly service,如果是并发去消费就不存在顺序性,那么它就是consumer concurrently service,就会把消息服务去启动起来,启动起来之后消息的服务如果要去获得这个消息,就要通过 MQ 客户端去请求 boolean ,拿到消息之后把消息再去进行处理,所以要把消息的消费服务注册到客户端,把客户端也再去启动起来,以上就是整个消息消费在启动的时候所做的一些事情。