PRODUCER、CONSUMER、BROKRE、TOPIC、QUENE基本概念关系:
总结如下:
1、producer和topic关系(多对多)
producer group可以包含多个逻辑相同或相似的producer,一个producer可以向单个或多个topic发送消息,同一个group下的不同producer也可以向不同的topic发送消息。
2、consumer和topic关系(多对多)
consumer group包含多个逻辑相同的consumer,一个consumer可以订阅多个topic,但同一个group下的不同consumer订阅不同的topic会出现问题,因订阅信息不一致,导致部分queue没有订阅这订阅。另外同一consumer可以配置线程池,提升吞吐量。
3、broker和topic关系(多对多)
broker group由相同name的一个master和多个slave组成,一个broker group可以提供多个topic服务,同一个topic也可以分布到多个broker group上,又称topic分片。不同broker上的相同topic可以不同配置 ,如不同的queue数量。
4、topic、queue、tag关系(一对多)
一个topic可以设置多个queue,相当一个topic横向切分。可以为topic设置tag,进一步细分topic,相当于对topic的纵向切分。同一个queue只能被相同group下的某一个consumer消费。
5、 message
消费模型包括:广播消费和集群消费。 消费顺序包括:顺序消费和并发消费,顺序消费最大的并发量是queue的数量,而并发消费依赖于客户端线程池设定。
Broker:
Broker角色:ASYNC_MASTER、SYNC_MASTER、SLAVE。若不容许消息丢失,则需要部署Master为SYNC_MASTER,且至少部署一台SLAVE。若可以允许消息丢失,可以部署Master为ASYNC_MASTER,可部署也可不部署SLAVE。
刷盘方式:异步刷盘和同步刷盘,一般用异步刷盘,否则性能损耗很多。可通过SYNC_MASTER+SLAVE来保证可靠性。
参考博文:
https://blog.youkuaiyun.com/binzhaomobile/article/details/73332463