Kafka应用:批量接收消息保存到MySQL中

项目需要从Kafka中接收消息,并保存到MySQL数据库中。
最初的程序每接收到一条消息,就将该消息保存到数据库中。

每条消息都会申请一个数据库连接,执行一个事务。面对大量的消息,处理速度太慢,效率太低。
一种可行的解决方法是使用流处理系统批量添加数据到数据库。在流处理系统中,每隔一定时间或每接收到一定量的数据,都会启动处理程序。但我对流处理系统不熟悉,只好借用里面的思想,模拟一个简单的批量程序。
先将消息读入到一个数组中,当数组中数据个数大于某个阈值时,批量将数据添加到数据库中。如下所示

但应该考虑到某些特殊情况,比如插入重复数据、退出时对尚未保存的数据的处理等。需要增加对异常的处理。

当然,上面的程序仍有许多问题,无法和流处理系统比较。后面我会考虑使用流处理系统替换上面的程序。