消息消费过程
PullMessageService负责对消息队列进行消息拉取,从远端服务器拉取消息后将消息存储ProcessQueue消息队列处理队列中然后调用ConsumeMessageservice#submitconsumeRequest方法进行消息消费,使用线程池来消费消息,确保了消息拉取与消息消费的解耦。
ConsumeMessageService支持顺序消息和并发消息,核心类图如下:
ConsumeMessageOrderlyService:顺序消费服务
ConsumeMessageConcurrentlyService:并发消费服务,concurrently就是同时的意思
并发消费
ConsumeMessageConcurrentlyService#submitconsumeRequest
我们先来看并发消费中的提交方法
@Override
public void submitConsumeRequest(
final List<MessageExt> msgs,
final ProcessQueue proc