前提:kafka使用默认的配置。
- 生产者初始化:生产者初始化后,向集群中任一broker请求元数据(配置、主题、分区leader等),并将元数据缓存到本地,后续会定期请求并更新本地的元数据。
- 查询主题元数据:向某个主题发送消息时,先本地查询主题元数据,如果主题不存在,向集群中任一broker请求主题的元数据,broker发现主题不存在,默认会创建主题并选举各分区leader,然后将主题元数据响应给生产者。
- 选择分区:生产者默认使用键哈希选择消息要发往主题下的哪个分区。
- 发消息:向分区的leader broker发消息。默认acks=1的情况下,当leader broker接收消息后会立即回复确认。
网友评论