在了解了消费者与消费组之间的概念之后,我们就可以着手进行消费者客户端的开发了。在 Kafka 的历史中,消费者客户端同生产者客户端一样也经历了两个大版本:第一个是于 Kafka 开源之初使用 Scala 语言编写的客户端,我们可以称之为旧消费者客户端或 Scala 消费者客户端;第二个是从 Kafka 0.9.x 版本开始推出的使用 Java 编写的客户端,我们可以称之为新消费者客户端或 Java 消费者客户端,它弥补了旧客户端中存在的诸多设计缺陷。
正常的消费逻辑需要具备以下几个步骤:
-
配置消费者客户端参数及创建相应的消费者实例。
-
订阅主题。
-
拉取消息并消费。
-
提交消费位移。
-
关闭消费者实例。
必要的参数配置
在创建真正的消费者实例之前需要做相应的参数配置,比如上一节中的设置消费者所属的消费组的名称、连接地址等。参照上面代码中的 initConfig() 方法,在 Kafka 消费者客户端 KafkaConsumer 中有4个参数是必填的。
-
bootstrap.servers:该参数的释义和生产者客户端 KafkaProducer 中的相同,用来指定连接 Kafka 集群所需的 broker 地址清单,具体内容形式为 host1:port1,host2:post,可以设置一个或多个地址,中间用逗号隔开,此参数的默认值为“”。注意这里并非需要设置集群中全部的 broker 地址,消费者会从现有的配置中查找到全部的 Kafka 集群成员。这里设置两个以上的 broker 地址信息,当其中任意一个宕机时,消费者仍然可以连接到 Kafka 集群上。
-
group.id:消费者隶属