【发布时间】:2020-09-10 21:55:08
【问题描述】:
我正在使用 spring-kafka 来使用来自两个 Kafka 主题的消息,它们发送的消息格式如下。
@KafkaListener(topics = {"topic_country1", "topic_country2"}, groupId = KafkaUtils.MESSAGE_GROUP)
public void onCustomerMessage(String message, Acknowledgment ack) throws Exception {
log.info("Message : {} is received", message);
ack.acknowledge();
}
- KafkaListener能否根据自己监听的topic数量和两个topic中的并行处理消息来分配消费者线程的数量?或者它不支持并行处理,消息必须在主题中等待,直到处理完一条消息?
- 如果主题中的消息数量较多,我需要自动扩展我的微服务以启动新实例(直到分区数量)。从 KafkaListener 的角度来看,我可以依靠哪些参数(CPU、内存)来找出主题中的消息数量更高? (即在 API 中,我可以通过监控 HTTP 延迟来自动扩展服务)
【问题讨论】:
标签: spring-boot apache-kafka kafka-consumer-api spring-kafka autoscaling