使用Kafka JDBC源连接器时,每秒只能获得1000条记录。如何提高记录提取率

时间:2019-11-25 17:50:38

标签: apache-kafka apache-kafka-connect confluent-platform

我正在使用带有JDBC源连接器的kafka connect。该连接器工作正常,但我每秒只能收到1000条消息。 Oracle DB中的主题。我尝试了大多数配置设置,但没有运气。我尝试了独立和分布式模式。请对此有所帮助。下面是我的JDBC Source连接器配置:

curl -X POST http://localhost:8083/connectors -H "Content-Type: application/json" -d '{"name": "ORA_SRC_DEVDB",
"config": {                "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",                 
"connection.url": "jdbc:oracle:thin:@xxxxxxx/DBDEV",                 
"connection.user": "xxxxxx",                 
"connection.password": "xxxxxx",                 
"query": "select * from A.LOG_AUDIT",               
"topic.prefix": "Topic_POC", 
"tasks.max": "1",  
"poll.interval.ms": "5000", 
"batch.max.rows": "1000", 
"table.poll.interval.ms": "60000",  
"mode": "timestamp",    
"timestamp.column.name": "MODIFIED_DATEnTIME"                 }        
 }'

还有使用3个分区和3个副本创建的目标主题“ Topic_POC”。

1 个答案:

答案 0 :(得分:1)

poll.interval.ms:以毫秒为单位的频率,用于轮询每个表中的新数据(默认值为5000)

最大批处理行数:单个批处理中可包含的最大行数(默认为100)

在您的情况下,每5秒从DB查询最多1000条记录。尝试减少poll.interval.ms并增加batch.max.rows可以提高提取率。

不仅以下因素也会影响您的提取率

  1. 传入数据库的数据速率也取决于
  2. 从数据库到JDBC连接器再到Kafka的I / O速率
  3. 如果在时间列上具有适当的索引,则数据库表的性能。
  4. 毕竟它使用JDBC从数据库中获取数据,因此暗示了您在单个JDBC应用程序上所面对的一切

根据我的经验,JDBC连接器很受欢迎