2.3. Red Hat Enterprise Linux에서 AMQ Streams를 사용하여 Debezium 배포


다음 절차에서는 Red Hat Enterprise Linux에서 Debezium 커넥터를 설정하는 방법을 설명합니다. 커넥터는 Apache Kafka와 외부 시스템 간에 데이터를 스트리밍하기 위한 프레임워크인 Apache Kafka Connect를 사용하여 AMQ Streams 클러스터에 배포됩니다. Kafka Connect는 독립 실행형 모드가 아닌 분산 모드에서 실행해야 합니다.

사전 요구 사항

참고

이전 버전의 AMQ Streams를 실행하는 경우 먼저 AMQ Streams 2.5로 업그레이드해야 합니다. 업그레이드 프로세스에 대한 자세한 내용은 AMQ Streams 및 Kafka 업그레이드 를 참조하십시오.

  • 호스트에 관리 권한(sudo 액세스)이 있습니다.
  • Apache Zoo Cryostat 및 Apache Kafka 브로커가 실행 중입니다.
  • Kafka Connect는 독립 실행형 모드가 아닌 분산 모드에서 실행됩니다.
  • AMQ Streams를 설치할 때 생성된 kafka 사용자의 인증 정보를 알고 있습니다.
  • 소스 데이터베이스가 배포되고 Debezium을 배포하는 호스트에서 데이터베이스에 액세스할 수 있습니다.
  • 커넥터를 구성하는 방법을 알고 있습니다.

프로세스

  1. Red Hat Integration 다운로드 사이트에서 사용하려는 Debezium 커넥터 또는 커넥터를 다운로드합니다. 예를 들어, Debezium과 함께 MySQL 데이터베이스를 사용하려면 Debezium 2.3.4 MySQL 커넥터를 다운로드합니다.
  2. AMQ Streams를 배포한 Red Hat Enterprise Linux 호스트에서 터미널 창을 열고 /opt/kafkaconnector-plugins 디렉토리를 생성합니다.

    $ sudo mkdir /opt/kafka/connector-plugins
  3. 다음 명령을 입력하여 다운로드한 Debezium 커넥터 아카이브 내용을 /opt/kafka/connector-plugins 디렉터리에 추출합니다.

    $ sudo unzip debezium-connector-mysql-2.3.4.Final.zip -d /opt/kafka/connector-plugins
  4. 설치하려는 각 커넥터에 대해 1 -3단계를 반복합니다.
  5. 터미널 창에서 kafka 사용자로 로그인합니다.

    $ su - kafka
    $ Password:
  6. 실행 중인 Kafka Connect 프로세스를 중지합니다.

    1. 다음 명령을 입력하여 Kafka Connect가 분산 모드에서 실행 중인지 확인합니다.

      $ jcmd | grep ConnectDistributed

      프로세스가 실행 중인 경우 명령에서 프로세스 ID를 반환합니다. 예를 들면 다음과 같습니다.

      18514 org.apache.kafka.connect.cli.ConnectDistributed /opt/kafka/config/connect-distributed.properties
    2. 프로세스 ID와 함께 kill 명령을 입력하여 프로세스를 중지합니다. 예를 들면 다음과 같습니다.

      $ kill 18514
  7. /opt/kafka/config/ 에서 connect-distributed.properties 파일을 편집하고 plugin.path 값을 Debezium 커넥터 플러그인의 상위 디렉터리 위치로 설정합니다.

    plugin.path=/opt/kafka/connector-plugins
  8. 분산 모드에서 Kafka 연결을 시작합니다.

    $ /opt/kafka/bin/connect-distributed.sh /opt/kafka/config/connect-distributed.properties
  9. Kafka Connect가 실행되면 Kafka Connect API를 사용하여 커넥터를 등록합니다.
    curl 명령을 입력하여 2.2절. “Debezium 커넥터 구성 계획” 에 지정한 커넥터 구성 JSON을 localhost:8083/connectors 의 Kafka Connect REST API 끝점으로 전송하는 POST 요청을 제출합니다.
    예를 들면 다음과 같습니다.

    curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8083/connectors/ \
    -d '{"name": "inventory-connector", "config": \
    { "connector.class": "io.debezium.connector.mysql.MySqlConnector", \
    "tasks.max": "1", \
    "database.hostname": "mysql", \
    "database.port": "3306", \
    "database.user": "debezium", \
    "database.password": "dbz", \
    "database.server.id": "184054", \
    "topic.prefix": "dbserver1", \
    "table.include.list": "public.inventory", \
    "schema.history.internal.kafka.bootstrap.servers": "kafka:9092", \
    "schema.history.internal.kafka.topic": "dbhistory.inventory" } }'

    여러 커넥터를 등록하려면 각각에 대해 별도의 요청을 제출합니다.

  10. Kafka Connect를 다시 시작하여 변경 사항을 구현합니다.

    Kafka Connect가 시작되면 connector-plugins 디렉터리에서 구성된 Debezium 커넥터를 로드합니다.

    구성을 완료하면 배포된 커넥터가 소스 데이터베이스에 연결하여 삽입, 업데이트 또는 삭제된 행 또는 문서에 대한 이벤트를 생성합니다.

  11. 각 Kafka Connect 작업자 노드에 대해 5-10단계를 반복합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.