我在一个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)
} }
这个听众每天将收到100多万条信息。如何确保在传入太多消息并插入db时不会遇到并发问题?或者我不需要担心?以上代码方法有更好的解决方案吗?
1条答案
按热度按时间jq6vz3qz1#
当有太多的消息传入和db插入时,如何确保我不会遇到并发问题
除非您的数据库客户机异步运行,否则您可能不会遇到该问题。kafkalistener正在阻塞,您可以自己配置
max.poll.records
设置在Kafka消费属性处理背压;你不会一次添加更多的记录。你现在有没有看到任何迹象表明这是事实?
有更好的解决办法吗
一般来说,是的。它要求您不要单独管理kafka使用者,而是为各自的数据库使用kafka连接接收器。