kafka-connect-jdbc 源连接器 OOM

kafka-connect-jdbc source connector OOM

我正在使用 kafka-connect-jdbc:5.3.1,当我是 运行 连接器时,它会将我踢出异常:java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Thread-11"

我已经尝试将堆 space 增加到 4gb 但仍然失败。 EC2实例类型为t2.large,记录数最多为400万条。

我的 属性 文件看起来像

name=jdbc_source_postgres
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
key.converter=org.apache.kafka.connect.storage.StringConverter
key.converter.schemas.enable=false
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schemas.enable=false

connection.url=jdbc:postgresql:/localhost:5432/demo?user=********&password=*******&defaultFetchSize=10000&useCursorFetch=true
tasks.max=10
table.types=TABLE
table.whitelist=sample_table
mode=timestamp
timestamp.column.name=last_modified
validate.non.null=false
batch.max.rows=100
topic.prefix=kafka02-
poll.interval.ms=3600

我 运行 这个连接器通过 EC2 上的 Docker 容器,我的 docker 文件看起来像这样

version: "3"
services:
  connect:
    image: kafka-connect:latest
    ports:
      - 80:8083
    network_mode: host
    volumes:
      - .:/src:cached
    environment:
      CONNECT_REST_PORT: 8083
      CONNECT_PLUGIN_PATH: "/usr/share/java"
      CLASSPATH: /usr/share/java/monitoring-interceptors/monitoring-interceptors-5.3.0.jar
      CONNECT_GROUP_ID: "connect"
      CONNECT_CONFIG_STORAGE_TOPIC: connect-configs
      CONNECT_OFFSET_STORAGE_TOPIC: connect-offsets
      CONNECT_STATUS_STORAGE_TOPIC: connect-status
      CONNECT_KAFKA_HEAP_OPTS: "-Xms256M -Xmx8G"
      CONNECT_BOOTSTRAP_SERVERS: localhost:9092
    command: connect-standalone /src/connect-standalone.properties /src/connectors/kafka-source.properties

我已经尝试了每一种可能的配置调整,但都失败了。任何帮助将不胜感激

属性 不是 CONNECT_KAFKA_HEAP_OPTS。只是 KAFKA_HEAP_OPTS

请注意,t2.large 本身最大为 8 GB,并且您需要 OS 的开销,因此您不能将 8GB 纯粹分配给 Java 无论如何在容器中处理 运行

旁注,建议不要覆盖独立连接的命令,而是在可能的情况下让任务分布在 Connect worker 集群中