kafka是一个分布式的,分区的消息(官方称之为commit log)服务。它提供一个消息系统应该具备的功能,但是确有着独 特的设计。可以这样来说,Kafka借鉴了JMS规范的思想,但是确并没有完全遵循JMS规范。
broker:可以看作是每一台应用服务器
Topic:主题,定义不同的发送主题,是一种逻辑上的概念
Producer:生产者,可以定义多个
Consumer:消费者,可以定义多个
ConsummrGroup:消费组,可以将消费者分组,Kafka消费消息是按偏移量来进行消费的,每个组都有自己的偏移量,如果不指定消费组也会有默认的消费组,每个消费组只能消费一个partition
Partition:分区,每个主题下可以指定多个分区,Kafka的集群搭建是建立在分区上的,假如建立了三台集群服务器,新建一个新的主题,设置三个副本,两个分区,这时会选举出来两个分区的leader服务器, 生产者生产消息是找集群下对应的leader节点,向leader节点发送消息,leader节点同步到从节点,这样即使leader挂了也会选举出新的leader,如果Broker挂了则会选举新的分区leader