debezium не может получить доступ к файлу "decoderbufs", используя postgres 11 с плагином pgoutput по умолчанию - PullRequest
2 голосов
/ 30 января 2020

Я новичок в kafka, я пытаюсь использовать разъем debezium postgres. но даже используя postgres версию 11 со стандартным плагином, я получаю эту ошибку: org. apache .kafka.connect.errors.ConnectException: org. postgresql .util.PSQLException: ОШИБКА: не удалось получить доступ к файлу "decoderbufs" : Нет такого файла или каталога

Для запуска kafka / debezium я использую образ fast-data-dev docker, как вы можете видеть ниже

  # this is our kafka cluster.
  kafka-cluster:
    image: landoop/fast-data-dev:latest
    environment:
      ADV_HOST: 127.0.0.1         # Change to 192.168.99.100 if using Docker Toolbox
      RUNTESTS: 0                 # Disable Running tests so the cluster starts faster
    ports:
      - 2181:2181                 # Zookeeper
      - 3030:3030                 # Landoop UI
      - 8081-8083:8081-8083       # REST Proxy, Schema Registry, Kafka Connect ports
      - 9581-9585:9581-9585       # JMX Ports
      - 9092:9092                 # Kafka Broker

после запуска i могу открыть мой localhost: 3030, чтобы выбрать разъем дебезиума, я настроил его так:

enter image description here

и я использую aws postgres rds в версии 11.5 Я видел несколько учебных пособий с использованием wal2 json, но я не нашел его в rds.extensions и не нашел способа добавить его. В любом случае, начиная с версии 10, debezium может использовать pgoutput и, по-видимому, настройка не требуется.

свойство rds.logical_replication установлено в 1 при выполнении SHOW wal_level; в терминале я вижу, что он возвращает логический, в документации сказано, что вы должны установить max_wal_senders = 1 и max_replication_slots = 1, поставить в rds минимум is 5, so I left the default that, равный 10

Я не определил роль REPLICATION, потому что из того, что я понимаю в RDS нет никакого способа

на этом изображении вы можете увидеть используемую версию 11,5

enter image description here

но Я получаю ошибку, как вы можете видеть ниже

enter image description here

Ответы [ 2 ]

2 голосов
/ 22 апреля 2020

Вы не установили "plugin.name" свойство в "pgoutput" в свойствах вашего коннектора Debezium , который вы уже выяснили. Но этот ответ для тех, кто не знает, где установить эту опцию, и для большей ясности.

В следующих свойствах соединителя:

enter image description here

Поскольку вы не установили plugin.name , выберите его принимает значение по умолчанию, равное decoderbufs , и именно поэтому вы получаете следующую ошибку:

enter image description here

Установка «plugin.name» явно для «pgoutput» должно решить проблему.

{ 
  "connector.class": "io.debezium.connector.postgresql.PostgresConnector", 
  "database.user": "postgres",
  "database.dbname": "xxxxx",
  "tasks.max": "1", 
  "database.hostname": "xxxx.rds.amazonaws.com", 
  "database.password": "xxxx", 
  "database.server.name": "database-1",
  "database.port": "5432",
  "plugin.name": "pgoutput" --> this property
}
0 голосов
/ 27 февраля 2020

Спасибо людям, проблема в том, что я пропустил опцию "plugin.name" и установил ее для pgoutput Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...