Kafta는 Kafka 클러스터를 관리하기 위한 최신 비JVM 명령줄입니다.

몇 밤 후, 주말과 늦은 밤. 오늘 우리는 Kafta의 첫 번째 안정적인 릴리스를 가지고 있습니다. 이 프로젝트는 저와 . Kafka와 함께 제공되는 기본 명령을 사용하여 며칠을 좌절했습니다.

Kafta는 개발자를 위해 개발자에 의해 만들어졌습니다. 우리는 apache-kafka에서 제공하는 bash를 사용하여 kafka 클러스터를 유지 관리하는 고통을 느끼고 있으며 혼란스럽고 경험이 비참합니다. 카프카의 채택을 촉진하기 위해 카프타가 탄생하기 시작했습니다. Kafta는 설치하기 쉽고 구성하기 쉽고 사용하기 쉬운 golang 프로젝트입니다.

개요



Kafta는 명령, 인수 및 플래그의 구조를 기반으로 합니다. Kafta는 항상 한 번에 하나의 클러스터에서 상호 작용할 것입니다. 그 이유는 kafka에 대한 대부분의 명령줄과 마찬가지로 각 명령에 어떤 클러스터가 있는지 전달할 필요가 없기 때문입니다.

존재하는 모든 명령을 보려면 다음을 실행하십시오.

$ kafta 
Usage:
  kafta [command]

Available Commands:
  broker      broker management
  cluster     cluster management
  completion  Output shell completion code 
  config      Modify config files
  console     Console management
  consumer    Consumer group management
  help        Help about any command
  schema      Schema Registry management
  topic       Topics management
  version     Print the kafta version

Flags:
  --context string       The name of the kafkaconfig context to use
  -d, --debug                Debug mode
  -h, --help                 help for kafta
      --kafkaconfig string   Path to the kafkaconfig file to 

Use "kafta [command] --help" for more information about a command.


모든 옵션이 동일한 명령과 관련되어 있는지 확인하려면 다음을 실행하십시오.

$ kafta topic
Topics management

Usage:
  kafta topic [command]

Available Commands:
  create      Create topics
  delete      Delete topics
  describe    Describe a topic
  list        List topics


간단한 명령



Kafta는 다른 cli와 매우 유사하며 "이 명령의 구문이 무엇인지"를 생각하지 않도록 만들어졌습니다. 좋은 예는 주제를 만드는 것입니다. 매우 간단합니다. 이 명령을 실행하십시오.

$ kafta topic create my-topic --rf 3 --partitions 10
Topic created


그게 다야! 주제가 생성되었습니다.

파티션과 리플리케이션 팩터에 대한 기본값이 있기 때문에 RF나 파티션을 지정하지 않고만 사용할 수 있습니다. 주제는 RF=3 및 파티션=10으로 생성됩니다. 예시:

$ kafta topic create my-topic
Topic created


설치 중



go get을 사용하여 최신 버전을 설치합니다. 이 명령은 라이브러리 및 해당 종속성과 함께 Kafta 실행 파일을 설치합니다.

이동 < 1.18: go get -u github.com/electric-saw/kafta이동 >= 1.18: go install github.com/electric-saw/kafta/cmd/kafta@latest
원하는 경우 바이너리만 download 컴퓨터에서 원하는 위치에서 실행할 수 있습니다.

컨텍스트 및 구성



Kafta는 ~/.kafta/config에 구성 파일을 생성합니다. 이 yaml은 kafka 다중 클러스터를 지원하고 매번 모든 주소를 전달하지 않도록 하는 데 사용됩니다.

Kafta의 각 클러스터는 컨텍스트라고 합니다. Kafta의 제안은 단순한 Kafka 관리자 이상이 되어 스키마 레지스트리 관리, 연결 및 Kafka 환경의 다른 부분을 생각하는 것입니다. 우리는 이 그룹을 컨텍스트라고 합니다.

새 컨텍스트를 설정하려면 Kafta를 통해 새 구성을 만들고 정보를 제공해야 합니다. 걱정하지 마세요. 모두 터미널에 있으므로 XML을 편집할 필요가 없습니다.\o/

예를 따르십시오.

$ kafta config set-context production
Bootstrap servers: b-1.mydomain:9092,b-2.mydomain:9092,b-3.mydomain:9092
Schema registry: https://schema-registry.com
Use SASL: y
SASL Algorithm: sha512
User: myuser
✔ Password: ******


컨텍스트를 나열하려면 다음을 실행하십시오.

$ kafta config get-contexts
+---------------+---------------------------+-----------------------------+------+---------+
| NAME          | CLUSTER                   | SCHEMA REGISTRY             | KSQL | CURRENT |
+---------------+---------------------------+-----------------------------+------+---------+
| dev           | b-1.mydomain:9092         | https://schema-registry.com |      | true    |
| production    | b-3.productiondomain:9092 | https://schema-registry.com |      | false   |
+---------------+---------------------------+-----------------------------+------+---------+


이 부분이 카프타의 차별점입니다. 클러스터가 많은 환경을 위해 설계되었으며 한 클러스터에서 다른 클러스터로 쉽게 이동할 수 있어야 합니다. 현재 클러스터를 변경하려면 다음을 실행합니다.

$ kafta config use-context production
Switched to context "production".


기타 명령



Kafta에는 여러 명령이 있으며 프로젝트의 README 에서 예제를 찾을 수 있습니다. 다음과 같은 몇 가지 명령이 있습니다.
  • 소비자 그룹
  • 스키마 레지스트리 - 부분 지원
  • 소비자/생산자 - 이 기여에 대해 감사합니다Vinicius Folgosa
  • 브로커
  • 클러스터 구성
  • 주제

  • 기부금



    Kafta는 매우 새롭고 많은 것을 변경하고 만들 수 있는 많은 기회가 있습니다. 기능을 만드는 데 관심이 있는 경우 새 문제를 열고 대화를 시작하세요. 그럴 시간이 없다면 프로젝트를 공유하고 마음에 든다면 별표를 클릭하세요 ;)

    좋은 웹페이지 즐겨찾기