12.2. Kafka 브리지 빠른 시작


이 빠른 시작을 사용하여 Red Hat Enterprise Linux에서 AMQ Streams Kafka 브리지를 사용해 보십시오. 다음을 수행하는 방법을 배울 수 있습니다.

  • Kafka 브리지 설치
  • Kafka 클러스터의 주제 및 파티션에 메시지 생성
  • Kafka 브리지 소비자 생성
  • 소비자가 주제에 가입하고 생성한 메시지 검색과 같은 기본 소비자 작업 수행

이 빠른 시작에서는 HTTP 요청이 터미널에 복사하여 붙여넣을 수 있는 curl 명령으로 포맷됩니다.

사전 요구 사항이 있는지 확인한 다음 이 장에 제공된 순서대로 작업을 수행합니다.

데이터 형식 정보

이 빠른 시작에서는 바이너리가 아닌 JSON 형식으로 메시지를 생성하고 사용합니다. 예제 요청에 사용되는 데이터 형식 및 HTTP 헤더에 대한 자세한 내용은 12.1.1절. “인증 및 암호화” 을 참조하십시오.

12.2.1. 로컬로 Kafka 브리지 배포

AMQ Streams Kafka Bridge 인스턴스를 호스트에 배포합니다. 설치 아카이브와 함께 제공된 application.properties 파일을 사용하여 기본 구성 설정을 적용합니다.

프로세스

  1. application.properties 파일을 열고 기본 HTTP 관련 설정이 정의되어 있는지 확인합니다.

    http.enabled=true
    http.host=0.0.0.0
    http.port=8080
    Copy to Clipboard Toggle word wrap

    이렇게 하면 포트 8080에서 요청을 수신 대기하도록 Kafka 브리지가 구성됩니다.

  2. 구성 속성을 매개변수로 사용하여 Kafka Bridge 스크립트를 실행합니다.

    ./bin/kafka_bridge_run.sh --config-file=<path>/application.properties
    Copy to Clipboard Toggle word wrap

12.2.2. 주제 및 파티션에 메시지 생성

주제 끝점을 사용하여 JSON 형식의 항목에 메시지를 생성합니다.

다음과 같이 요청 본문에 메시지에 대한 대상 파티션을 지정할 수 있습니다. 파티션 끝점은 모든 메시지의 단일 대상 파티션을 경로 매개 변수로 지정하는 대체 방법을 제공합니다.

프로세스

  1. kafka-topics.sh 유틸리티를 사용하여 Kafka 주제를 생성합니다.

    bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic bridge-quickstart-topic --partitions 3 --replication-factor 1 --config retention.ms=7200000 --config segment.bytes=1073741824
    Copy to Clipboard Toggle word wrap

    파티션을 세 개 지정합니다.

  2. 주제가 생성되었는지 확인합니다.

    bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic bridge-quickstart-topic
    Copy to Clipboard Toggle word wrap
  3. Kafka 브리지를 사용하여 생성한 항목에 세 개의 메시지를 생성합니다.

    curl -X POST \
      http://localhost:8080/topics/bridge-quickstart-topic \
      -H 'content-type: application/vnd.kafka.json.v2+json' \
      -d '{
        "records": [
            {
                "key": "my-key",
                "value": "sales-lead-0001"
            },
            {
                "value": "sales-lead-0002",
                "partition": 2
            },
            {
                "value": "sales-lead-0003"
            }
        ]
    }'
    Copy to Clipboard Toggle word wrap
    • sales-lead-0001 은 키의 해시를 기반으로 파티션으로 전송됩니다.
    • sales-lead-0002 는 파티션 2로 직접 전송됩니다.
    • sales-lead-0003 은 라운드 로빈 방법을 사용하여 bridge-quickstart-topic 주제의 파티션으로 전송됩니다.
  4. 요청이 성공하면 Kafka 브리지는 200 (OK) 코드 및 application/vnd.kafka.v2+jsoncontent-type 헤더와 함께 오프셋 배열을 반환합니다. 각 메시지에 대해 오프셋 배열은 다음을 설명합니다.

    • 메시지가 전송된 파티션
    • 파티션의 현재 메시지 오프셋

      응답 예

      #...
      {
        "offsets":[
          {
            "partition":0,
            "offset":0
          },
          {
            "partition":2,
            "offset":0
          },
          {
            "partition":0,
            "offset":1
          }
        ]
      }
      Copy to Clipboard Toggle word wrap

다음에 수행할 작업

주제 및 파티션에 메시지를 생성한 후 Kafka Bridge 소비자를 생성합니다.

추가 리소스

12.2.3. Kafka 브리지 소비자 생성

Kafka 클러스터에서 소비자 작업을 수행하려면 먼저 소비자 끝점을 사용하여 소비자를 생성해야 합니다. 소비자를 Kafka 브리지 소비자 라고 합니다.

프로세스

  1. bridge-quickstart-consumer-group 이라는 새 소비자 그룹에 Kafka 브리지 소비자를 생성합니다.

    curl -X POST http://localhost:8080/consumers/bridge-quickstart-consumer-group \
      -H 'content-type: application/vnd.kafka.v2+json' \
      -d '{
        "name": "bridge-quickstart-consumer",
        "auto.offset.reset": "earliest",
        "format": "json",
        "enable.auto.commit": false,
        "fetch.min.bytes": 512,
        "consumer.request.timeout.ms": 30000
      }'
    Copy to Clipboard Toggle word wrap
    • 소비자의 이름은 bridge-quickstart-consumer 로 지정되며 포함된 데이터 형식은 json 으로 설정됩니다.
    • enable.auto.commit 설정은 false 이므로 소비자는 로그에 오프셋을 자동으로 커밋하지 않습니다. 이 빠른 시작의 뒷부분에서 오프셋을 수동으로 커밋합니다.

      참고

      요청 본문에 소비자 이름을 지정하지 않으면 Kafka Bridge에서 임의의 소비자 이름을 생성합니다.

      요청이 성공하면 Kafka 브리지는 200 (OK) 코드와 함께 응답 본문의 소비자 ID(instance_id) 및 기본 URL(base_uri)을 반환합니다.

      응답 예

      #...
      {
        "instance_id": "bridge-quickstart-consumer",
        "base_uri":"http://<bridge-name>-bridge-service:8080/consumers/bridge-quickstart-consumer-group/instances/bridge-quickstart-consumer"
      }
      Copy to Clipboard Toggle word wrap

  2. 이 빠른 시작의 다른 소비자 작업에 사용할 기본 URL(base_uri)을 복사합니다.

다음에 수행할 작업

이제 Kafka 브리지 소비자를 생성했으므로 주제를 구독할 수 있습니다.

추가 리소스

12.2.4. Kafka 브리지 소비자 등록

서브스크립션 엔드포인트를 사용하여 Kafka 브리지 소비자를 하나 이상의 항목에 등록합니다. 가입되면 소비자가 주제로 생성된 모든 메시지를 수신하기 시작합니다.

프로세스

  • 이전에 생성한 bridge-quickstart-topic 항목에 소비자를 구독하면 메시지를 주제 및 파티션에 유도합니다.

    curl -X POST http://localhost:8080/consumers/bridge-quickstart-consumer-group/instances/bridge-quickstart-consumer/subscription \
      -H 'content-type: application/vnd.kafka.v2+json' \
      -d '{
        "topics": [
            "bridge-quickstart-topic"
        ]
    }'
    Copy to Clipboard Toggle word wrap

    주제 배열에는 위에 표시된 대로 단일 주제 또는 여러 주제가 포함될 수 있습니다. 일반 표현식과 일치하는 여러 항목에 소비자를 서브스크립션하려면 주제 배열 대신 topic_pattern 문자열을 사용할 수 있습니다.

    요청이 성공하면 Kafka 브리지는 204 No Content 코드만 반환합니다.

다음에 수행할 작업

Kafka Bridge 소비자를 항목에 등록한 후 소비자 에서 메시지를 검색할 수 있습니다.

추가 리소스

12.2.5. Kafka 브리지 소비자에서 최신 메시지 검색

레코드 끝점에서 데이터를 요청하여 Kafka Bridge 소비자에서 최신 메시지를 검색합니다. 프로덕션에서 HTTP 클라이언트는 이 끝점을 루프에서 반복적으로 호출할 수 있습니다.

프로세스

  1. 주제 및 파티션에 대한 메시지 전달에 설명된 대로 Kafka Bridge 소비자에 추가 메시지를 생성합니다.
  2. GET 요청을 레코드 끝점에 제출합니다.

    curl -X GET http://localhost:8080/consumers/bridge-quickstart-consumer-group/instances/bridge-quickstart-consumer/records \
      -H 'accept: application/vnd.kafka.json.v2+json'
    Copy to Clipboard Toggle word wrap

    Kafka Bridge 소비자를 생성하고 구독하면 첫 번째 GET 요청이 빈 응답을 반환하므로 폴링 작업에서 파티션을 재조정 프로세스를 트리거합니다.

  3. 두 단계를 반복하여 Kafka 브리지 소비자에서 메시지를 검색합니다.

    Kafka Bridge는 200 (OK) 코드와 함께 응답 본문에 있는 주제 이름, 키, 값, 파티션 및 오프셋 function을 설명하는 messages의 배열을 반환합니다. 메시지는 기본적으로 최신 오프셋에서 검색됩니다.

    HTTP/1.1 200 OK
    content-type: application/vnd.kafka.json.v2+json
    #...
    [
      {
        "topic":"bridge-quickstart-topic",
        "key":"my-key",
        "value":"sales-lead-0001",
        "partition":0,
        "offset":0
      },
      {
        "topic":"bridge-quickstart-topic",
        "key":null,
        "value":"sales-lead-0003",
        "partition":0,
        "offset":1
      },
    #...
    Copy to Clipboard Toggle word wrap
    참고

    빈 응답이 반환되면 주제 및 파티션에 대한 메시지 전달에 설명된 대로 소비자에 더 많은 레코드를 생성한 다음 메시지를 다시 검색해 보십시오.

다음에 수행할 작업

Kafka 브리지 소비자에서 메시지를 검색한 후 로그에 오프셋을 커밋합니다.

추가 리소스

12.2.6. 로그에 오프셋 커밋

오프셋 끝점을 사용하여 Kafka Bridge 소비자가 수신한 모든 메시지의 로그에 오프셋을 수동으로 커밋합니다. 이전에 생성한 Kafka 브리지 소비자 생성 에서 enable.auto.commit 설정을 false 로 사용하여 구성되었기 때문에 이 작업이 필요합니다.

프로세스

  • bridge-quickstart-consumer:의 로그에 대한 커밋 오프셋

    curl -X POST http://localhost:8080/consumers/bridge-quickstart-consumer-group/instances/bridge-quickstart-consumer/offsets
    Copy to Clipboard Toggle word wrap

    요청 본문이 제출되지 않으므로 소비자가 수신한 모든 레코드에 대해 오프셋이 커밋됩니다. 또는 요청 본문에 오프셋을 커밋할 주제와 파티션을 지정하는 배열(OffsetCommitSeekList)이 포함될 수 있습니다.

    요청이 성공하면 Kafka 브리지는 204 No Content 코드만 반환합니다.

다음에 수행할 작업

로그에 오프셋을 커밋한 후 오프셋을 찾기 위해 끝점을 시도합니다.

추가 리소스

12.2.7. 파티션 오프셋 검색

위치 끝점을 사용하여 특정 오프셋에서 파티션에 대한 메시지를 검색한 다음 최신 오프셋에서 메시지를 검색하도록 Kafka 브리지 소비자를 구성합니다. 이를 Apache Kafka에서 검색 작업이라고 합니다.

프로세스

  1. quickstart-bridge-topic 주제의 파티션 0에 대한 특정 오프셋을 찾습니다.

    curl -X POST http://localhost:8080/consumers/bridge-quickstart-consumer-group/instances/bridge-quickstart-consumer/positions \
      -H 'content-type: application/vnd.kafka.v2+json' \
      -d '{
        "offsets": [
            {
                "topic": "bridge-quickstart-topic",
                "partition": 0,
                "offset": 2
            }
        ]
    }'
    Copy to Clipboard Toggle word wrap

    요청이 성공하면 Kafka 브리지는 204 No Content 코드만 반환합니다.

  2. GET 요청을 레코드 끝점에 제출합니다.

    curl -X GET http://localhost:8080/consumers/bridge-quickstart-consumer-group/instances/bridge-quickstart-consumer/records \
      -H 'accept: application/vnd.kafka.json.v2+json'
    Copy to Clipboard Toggle word wrap

    Kafka 브리지는 원하는 오프셋에서 메시지를 반환합니다.

  3. 동일한 파티션의 마지막 오프셋을 찾아 기본 메시지 검색 동작을 복원합니다. 이번에는 위치/엔드 엔드포인트를 사용합니다.

    curl -X POST http://localhost:8080/consumers/bridge-quickstart-consumer-group/instances/bridge-quickstart-consumer/positions/end \
      -H 'content-type: application/vnd.kafka.v2+json' \
      -d '{
        "partitions": [
            {
                "topic": "bridge-quickstart-topic",
                "partition": 0
            }
        ]
    }'
    Copy to Clipboard Toggle word wrap

    요청이 성공하면 Kafka 브리지는 또 다른 204 No Content 코드를 반환합니다.

참고

position/beginning 끝점을 사용하여 하나 이상의 파티션에 대한 첫 번째 오프셋을 검색할 수도 있습니다.

다음에 수행할 작업

이 빠른 시작에서는 AMQ Streams Kafka 브리지를 사용하여 Kafka 클러스터에서 몇 가지 일반적인 작업을 수행했습니다. 이제 이전에 생성한 Kafka 브리지 소비자를 삭제할 수 있습니다.

12.2.8. Kafka 브리지 소비자 삭제

마지막으로 이 빠른 시작 전체에서 사용한 Kafa Bridge 소비자를 삭제합니다.

프로세스

  • 인스턴스 엔드포인트에 DELETE 요청을 전송하여 Kafka 브리지 소비자를 삭제합니다.

    curl -X DELETE http://localhost:8080/consumers/bridge-quickstart-consumer-group/instances/bridge-quickstart-consumer
    Copy to Clipboard Toggle word wrap

    요청이 성공하면 Kafka 브리지는 204 No Content 코드만 반환합니다.

추가 리소스

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동