Topic是一个逻辑上的概念,可以看成是一类消息的聚合。从物理上来说,一个Topic是由分散在各个服务节点上的Partition组成的,每个Topic可以有多个Producer向他发送消息,也可以有多个Consumer消费其中的消息。
如图所示,一个Topic是由分散在多台broker上的Pratition组成的,多台Produer按照一定的算法把消息发送给各个Partition上,consumer按照一定的算法去消费不同pratition上的消息。
每一个Pratition最大允许一个consumer去消费,一个consumer可以消费多个Pratition。
对于每一个Partition而言,每一个新增的消息都会分配一个offset,他是该消息在此分区中的唯一标准。kafka通过offset来维护消息顺序,对于同一个分区而言,消息是有序的。