如何覆盖Aiven JdbcSinkConnector的默认退避时长与最大重试次数
解决Aiven JdbcSinkConnector连接重试参数不生效的问题
你遇到的问题根源是:Aiven JdbcSinkConnector使用的连接重试参数名与你配置的不一致——你用的connection.attempts和connection.backoff.ms是Confluent原生JDBC连接器的参数,而Aiven的版本改用了专属参数名:
connection.retry.attempts: 数据库连接的最大重试次数,默认3次connection.retry.backoff.ms: 每次重试的退避间隔(毫秒),默认10000ms
修改后的Connector配置命令
将原配置中的两个参数替换为上述专属参数,修改后的curl命令如下:
curl -X POST -H "Content-Type: application/json" --data '{ "name": "jdbc-sink-my-topic", "config": { "connector.class": "io.aiven.connect.jdbc.JdbcSinkConnector", "key.converter": "org.apache.kafka.connect.storage.StringConverter", "value.converter": "io.confluent.connect.avro.AvroConverter", "value.converter.schema.registry.url": "http://localhost:8081", "tasks.max": 1, "connection.url": "jdbc:postgresql://<private_ip>/<db_name>?currentSchema=<schema_name>", "connection.user": <username>, "connection.password": <password>, "connection.retry.attempts": 5, "connection.retry.backoff.ms": 20000, "topics": <topic_name>, "table.name.format": <db_table_name>, "insert.mode": "multi", "pk.mode": "none", "auto.create": "false", "errors.tolerance": "all", "errors.log.enable": "true", "errors.log.include.messages": "true"}}' http://localhost:8083/connectors | jq
验证配置生效
当数据库再次不可用时,日志会显示类似如下内容,说明自定义参数已生效:Unable to connect to database on attempt 1/5. Will retry in 20000 ms. (io.aiven.connect.jdbc.util.CachedConnectionProvider:97)
内容的提问来源于stack exchange,提问作者Stojan
相关产品推荐
相关产品推荐

