Java @KafkaListener是一个更好的解决方案,可以每天消耗100多万条消息?
我在一个spring boot项目中有一个spring KafkaListener: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.
@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
设置来处理背压;你永远不会一次添加更多的记录
你目前是否看到任何迹象表明这是事实
有更好的解决办法吗
一般来说,是的。它要求您不要单独管理卡夫卡消费者,而是为各自的数据库使用 如果要将卡夫卡主题中的数据写入数据库,则应使用卡夫卡连接,例如。