腾讯云消息队列 CKafka - Consumer Group 问题
文档简介:
怎样设置合理的消费者数量?
消费组和消费者的对应关系如下:
一个消费者可以同时订阅多个 Topic。
一个 Topic 里面包含了1到多个分区。
一个分区只能被一个消费者消费。
怎样设置合理的消费者数量?
消费组和消费者的对应关系如下:
一个消费者可以同时订阅多个 Topic。
一个 Topic 里面包含了1到多个分区。
一个分区只能被一个消费者消费。
所以,一个消费组里面,消费者数量上限 = topic1的分区数 + topic2的分区数 +...... + topicN 的分区数。
关于消费者的定义:消费者在代码层面指的是一个 Consumer 的对象,一个机器上可以有多个消费者,例如起多个线程,一个线程里面有一个 Consumer,以此类推,如下面代码所示:
Properties props = new Properties();props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrap);KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);consumer.subscribe(Arrays.asList(topic));while (true) {ConsumerRecords<String, String> records = consumer.poll(100);}
初始的消费者数量可以根据客户端的资源情况进行初始的部署,然后配置消费者组的堆积告警,如果出现堆积的时候再扩容消费者。配置告警方式参见 配置告警,配置页面如下图所示。

