14.9. 최적화 제안 생성


/rebalance 엔드포인트에 대한 POST 요청을 수행할 때 Cruise Control은 제공된 최적화 목표에 따라 Kafka 클러스터를 재조정하기 위한 최적화 제안을 생성합니다. 최적화 제안의 결과를 사용하여 Kafka 클러스터를 재조정할 수 있습니다.

다음 끝점 중 하나를 사용하여 최적화 제안을 실행할 수 있습니다.

  • /rebalance
  • /add_broker
  • /remove_broker

사용하는 끝점은 Kafka 클러스터에서 이미 실행 중인 모든 브로커 간에 재조정하는지 아니면 Kafka 클러스터를 확장한 후 또는 Kafka 클러스터를 축소하기 전에 재조정해야 하는지에 따라 다릅니다. 자세한 내용은 브로커 스케일링을 사용하여 끝점 재조정 을 참조하십시오.

최적화 제안은 시험 실행 매개 변수를 제공하고 false 로 설정하지 않는 한 시험 실행으로 생성됩니다. "시험 실행 모드"에서 Cruise Control은 최적화 제안과 예상 결과를 생성하지만 클러스터를 재조정하여 제안을 시작하지는 않습니다.

최적화 제안에서 반환된 정보를 분석하고 승인 여부를 결정할 수 있습니다.

다음 매개변수를 사용하여 끝점에 요청합니다.

dryrun

유형: boolean, default: true

Cruise Control에 최적화 제안만 생성하거나 최적화 제안을 생성하고 클러스터 재조정(false)을 수행할지 여부를 제어합니다.

dryrun=true (기본값)인 경우 verbose 매개변수를 전달하여 Kafka 클러스터 상태에 대한 자세한 정보를 반환할 수 있습니다. 여기에는 최적화 제안 전후에 각 Kafka 브로커의 로드 메트릭과 이전 및 이후 값의 차이가 포함됩니다.

excluded_topics

유형: regex

최적화 제안 계산에서 제외할 주제와 일치하는 정규식입니다.

목표

type: 문자열 목록, default: 구성된 default.goals 목록

최적화 제안을 준비하는 데 사용할 사용자 제공 최적화 목표 목록입니다. 목표를 지정하지 않으면 cruisecontrol.properties 파일에 구성된 default.goals 목록이 사용됩니다.

skip_hard_goals_check

유형: boolean, default: false

기본적으로 Cruise Control은 사용자가 제공한 최적화 목표( goals 매개변수에서)에 구성된 모든 하드 목표( hard.goals)가 포함되어 있는지 확인합니다. 구성된 hard.goals 의 서브 세트가 아닌 목표를 제공하면 요청이 실패합니다.

구성된 hard.goals 를 모두 포함하지 않는 사용자 제공 최적화 목표를 사용하여 최적화 제안을 생성하려면 skip_hard_goals_checktrue 로 설정합니다.

json

유형: boolean, default: false

Cruise Control 서버에서 반환하는 응답 유형을 제어합니다. 제공되지 않거나 false 로 설정하면 Cruise Control은 명령줄에서 표시되도록 포맷된 텍스트를 반환합니다. 반환된 정보의 요소를 프로그래밍 방식으로 추출하려면 json=true 를 설정합니다. 이렇게 하면 jq 와 같은 툴로 파이프하거나 스크립트 및 프로그램에서 구문 분석할 수 있는 JSON 형식의 텍스트가 반환됩니다.

상세 정보

유형: boolean, default: false

Cruise Control 서버에서 반환하는 응답의 세부 수준을 제어합니다. dryrun=true 와 함께 사용할 수 있습니다.

참고

기타 매개 변수를 사용할 수 있습니다. 자세한 내용은 Cruise Control Wiki 의 REST API 를 참조하십시오.

사전 요구 사항

프로세스

  1. /rebalance,/add_broker 또는 /remove_broker 엔드포인트에 대한 POST 요청을 사용하여 최적화 제안을 생성합니다.

    기본 목표를 사용하여 /rebalance 에 대한 요청 예

    curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/rebalance'

    캐시된 최적화 제안은 즉시 반환됩니다.

    참고

    NotEnoughValidWindows 가 반환되면 Cruise Control은 최적화 제안을 생성하기 위해 충분한 메트릭 데이터를 기록하지 않았습니다. 몇 분 정도 기다린 후 요청을 다시 보냅니다.

    지정된 목표를 사용하여 /rebalance 에 대한 요청 예

    curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/rebalance?goals=RackAwareGoal,ReplicaCapacityGoal'

    요청이 제공된 목표를 충족하면 캐시된 최적화 제안이 즉시 반환됩니다. 그렇지 않으면 제공된 목표를 사용하여 새로운 최적화 제안이 생성됩니다. 이를 계산하는 데 시간이 오래 걸립니다. ignore_proposal_cache=true 매개변수를 요청에 추가하여 이 동작을 적용할 수 있습니다.

    하드 목표 없이 지정된 목표를 사용하여 /rebalance 에 대한 요청 예

    curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/rebalance?goals=RackAwareGoal,ReplicaCapacityGoal,ReplicaDistributionGoal&skip_hard_goal_check=true'

    지정된 브로커를 포함하는 /add_broker 에 대한 요청 예

    curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/add_broker?brokerid=3,4'

    요청에는 새 브로커의 ID만 포함됩니다. 예를 들어 이 요청은 ID 34 가 있는 브로커를 추가합니다. 복제본은 재조정 시 기존 브로커에서 새 브로커로 이동합니다.

    지정된 브로커를 제외하는 /remove_broker 에 대한 요청 예

    curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/remove_broker?brokerid=3,4'

    요청에는 제외되는 브로커의 ID가 포함됩니다. 예를 들어 이 요청은 ID 34 가 있는 브로커를 제외합니다. 복제본은 재조정 시 제거되는 브로커에서 다른 기존 브로커로 이동합니다.

    참고

    제거 중인 브로커가 제외된 경우 복제본은 계속 이동합니다.

  2. 응답에 포함된 최적화 제안을 검토하십시오. 속성은 보류 중인 클러스터 리밸런스 작업을 설명합니다.

    이 제안에는 제안된 최적화에 대한 높은 수준의 요약과 각 기본 최적화 목표에 대한 요약과 제안서가 실행된 후 예상되는 클러스터 상태가 포함됩니다.

    특히 다음 정보에 유의하십시오.

    • 요약 후 클러스터 로드. 요구 사항을 충족하는 경우 높은 수준의 요약을 사용하여 제안된 변경 사항의 영향을 평가해야 합니다.
    • N inter-broker 복제본 (yMB) 이동 은 브로커 간에 네트워크를 통해 이동할 데이터의 양을 나타냅니다. 값이 클수록 리밸런스 중 Kafka 클러스터에 대한 잠재적인 성능 영향이 커집니다.
    • N intra-broker 복제본(yMB) 은 브로커 자체 내에서 이동할 데이터의 양을 나타냅니다(디스크 간). 값이 클수록 개별 브로커에 대한 잠재적인 성능 영향이 커집니다( n inter-broker 복제본(yMB)보다 적음).
    • 리더십 이동 횟수입니다. 이는 리밸런스 중 클러스터 성능에 부정적인 영향을 미칩니다.

비동기 응답

Cruise Control REST API 엔드포인트는 기본적으로 10초 후에 시간 초과되지만 제안 생성은 서버에서 계속됩니다. 최근 캐시된 최적화 제안이 준비되지 않았거나 ignore_proposal_cache=true 로 사용자 제공 최적화 목표를 지정한 경우 시간 초과가 발생할 수 있습니다.

나중에 최적화 제안을 검색할 수 있도록 하려면 /rebalance 끝점의 응답 헤더에 제공되는 요청의 고유 식별자를 기록해 두십시오.

curl 을 사용하여 응답을 얻으려면 상세 정보 표시(-v) 옵션을 지정합니다.

curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/rebalance'

다음은 예제 헤더입니다.

* Connected to cruise-control-server (::1) port 9090 (#0)
> POST /kafkacruisecontrol/rebalance HTTP/1.1
> Host: cc-host:9090
> User-Agent: curl/7.70.0
> Accept: /
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Mon, 01 Jun 2020 15:19:26 GMT
< Set-Cookie: JSESSIONID=node01wk6vjzjj12go13m81o7no5p7h9.node0; Path=/
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< User-Task-ID: 274b8095-d739-4840-85b9-f4cfaaf5c201
< Content-Type: text/plain;charset=utf-8
< Cruise-Control-Version: 2.0.103.redhat-00002
< Cruise-Control-Commit_Id: 58975c9d5d0a78dd33cd67d4bcb497c9fd42ae7c
< Content-Length: 12368
< Server: Jetty(9.4.26.v20200117-redhat-00001)

시간 초과 내에 최적화 제안이 준비되지 않은 경우 POST 요청을 다시 제출할 수 있습니다. 이번에는 헤더에 원래 요청의 User-Task-ID 를 포함합니다.

curl -v -X POST -H 'User-Task-ID: 274b8095-d739-4840-85b9-f4cfaaf5c201' 'cruise-control-server:9090/kafkacruisecontrol/rebalance'

다음에 수행할 작업

14.10절. “최적화 제안 승인”

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.