Kafka 采用大部分消息系统遵循的传统模式:Producer 将消息推送到 Broker,Consumer 从 Broker 获取消息。

如果采用  Push  模式,则 Consumer 难以处理不同速率的上游推送消息。

采用 Pull 模式的好处是 Consumer 可以自主决定是否批量的从 Broker 拉取数据。Pull 模式有个缺点是,如果 Broker 没有可供消费的消息,将导致 Consumer 不断在循环中轮询,直到新消息到达。为了避免这点,Kafka 有个参数可以让 Consumer 阻塞直到新消息到达。