Java @KafkaListener是一个更好的解决方案,可以每天消耗100多万条消息?

Java @KafkaListener是一个更好的解决方案,可以每天消耗100多万条消息?,java,apache-kafka,kafka-consumer-api,spring-kafka,Java,Apache Kafka,Kafka Consumer Api,Spring Kafka,我在一个spring boot项目中有一个spring KafkaListener: @KafkaListener(topics = "topic-one", groupId = "groupone") public void listen(CustomerDetails customerDetails) { if(customerDetails.getCertainDetails!= null && !customerDetails.getCertainDetails.

我在一个spring boot项目中有一个spring KafkaListener:

@KafkaListener(topics = "topic-one", groupId = "groupone")
public void listen(CustomerDetails customerDetails) {
    if(customerDetails.getCertainDetails!= null && !customerDetails.getCertainDetails.isEmpty()) {
        dbInsert;
} else {
 log.info(customerDetails.toString)
} }

此侦听器每天将接收一百万条以上的消息。 当有太多的消息传入并插入数据库时,如何确保不会遇到并发问题?还是我不需要担心? 对于上述代码方法是否有更好的解决方案

当有太多的消息传入并插入数据库时,如何确保不会遇到并发问题

除非您的数据库客户端异步运行,否则您可能不会遇到该问题。KafkaListener正在阻塞,您可以在Kafka consumer properties中配置自己的
max.poll.records
设置来处理背压;你永远不会一次添加更多的记录

你目前是否看到任何迹象表明这是事实

有更好的解决办法吗


一般来说,是的。它要求您不要单独管理卡夫卡消费者,而是为各自的数据库使用

如果要将卡夫卡主题中的数据写入数据库,则应使用卡夫卡连接,例如。