>  기사  >  Java  >  일반적으로 사용되는 Kafka 주제 생성 명령

일반적으로 사용되는 Kafka 주제 생성 명령

王林
王林원래의
2024-02-01 08:04:23862검색

일반적으로 사용되는 Kafka 주제 생성 명령

1 명령줄을 사용하여 주제를 생성합니다

kafka-topics --create --topic test --partitions 3 --replication-factor 2

이 명령은 3개의 파티션과 2개의 복제 요소가 있는 "test"라는 주제를 생성합니다. 이는 중복성과 고가용성을 보장하기 위해 데이터가 2개의 다른 브로커에 3번 복제된다는 의미입니다.

2. Java API를 사용하여 주제를 생성합니다

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
AdminClient adminClient = AdminClient.create(props);

NewTopic topic = new NewTopic("test", 3, (short) 2);
adminClient.createTopics(Arrays.asList(topic));

이 코드는 3개의 파티션과 2개의 복제 요소가 있는 "test"라는 주제를 생성합니다.

3. Python API를 사용하여 주제를 생성합니다

from kafka import KafkaAdminClient

admin_client = KafkaAdminClient(bootstrap_servers="localhost:9092")

topic_list = [
    kafka.admin.NewTopic(name="test", num_partitions=3, replication_factor=2)
]

admin_client.create_topics(new_topics=topic_list, validate_only=False)

이 코드는 3개의 파티션과 2개의 복제 요소가 있는 "test"라는 주제를 생성합니다.

4. REST API를 사용하여 주제를 생성합니다

curl -X POST -H "Content-Type: application/json" -d '{"name": "test", "partitions": 3, "replication_factor": 2}' http://localhost:8083/topics

이 명령은 3개의 파티션과 2개의 복제 요소가 있는 "test"라는 주제를 생성합니다.

5. Kafka UI를 사용하여 주제 만들기

  1. http://localhost:8083에서 Kafka UI를 엽니다.
  2. "테마" 탭을 클릭하세요.
  3. "테마 만들기" 버튼을 클릭하세요.
  4. 이름 필드에 테마 이름을 입력하세요.
  5. "파티션 수" 필드에 파티션 수를 입력하세요.
  6. "복제 인자" 필드에 복제 인자를 입력하세요.
  7. "만들기" 버튼을 클릭하세요.

테마가 생성되고 테마 목록에 표시됩니다.

기타 옵션

위 방법 외에도 다음 옵션을 사용하여 주제를 생성할 수도 있습니다.

  • [Kafka REST 프록시] 사용(https://kafka.apache.org/documentation/#rest_proxy) )
  • [Kafka Python 패키지] 사용(https://github.com/dpkp/kafka-python)
  • [Kafka Go 패키지] 사용(https://github.com/Shopify/sarama)
  • [Kafka 사용 Node.js 패키지](https://github.com/segmentio/kafka-node)

Notes

  • 주제를 생성할 때 주제 이름이 고유한지 확인해야 합니다.
  • 또한 파티션 수와 복제 요소가 애플리케이션 요구 사항과 호환되는지 확인해야 합니다.
  • 파티션이 많은 주제를 생성하면 성능 문제가 발생할 수 있습니다.
  • 복제 인자가 큰 토픽을 생성하면 스토리지 오버헤드가 증가할 수 있습니다.

위 내용은 일반적으로 사용되는 Kafka 주제 생성 명령의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.