架构
- Producer 生产者
- Consumer 消费者
- NameServer 注册中心
- Broker 消息中心
- Topic
- CommitLog
- ConsumerQueue
- ConsumerGroup
一次消息发送然后被消费的流程
1.Producer通过NameServer获取(缓存)对应Topic的Broker,然后通过负载均衡(轮转)都方式找到对应的Broker
- 发送消息到Broker上,Broker迅速将消息以顺序写的方式写入CommitLog末尾
- Broker以同步或异步的方式将消息的索引写入到具体的ConsumerQueue中(通过NameServer对ConsumerQueue进行负载均衡)
4.Consumer通过NameServer获取(缓存)对于Topic的Broker和对应Broker的ConsumQueue进行消费
关系
- 一个Brocker可以看作一个进程
- 一个Topic可以注册在N个Broker上
- 一个Topic在Broker上有m个ConsumerQueue
- 一个ConsumerGroup可以订阅X个Topic
- 不同的ConsumerGroup可以重复消费消息,每个可消费一次
- 一个ConsumerGroup中的Consumer将被均匀的分配ConsumerQueue