orchestrator介绍3.2 命令行之orchestrator-client

 orchestrator-client 是一个包装 API 调用的脚本,使用起来更方便。

它可以自动确定orchestrator的Leader角色,并在这种情况下将所有请求转发给Leader。

有了orchestrator-client

  • 不需要到处安装orchestrator的二进制文件;仅在运行该服务的主机上安装即可
  • 不需要到处部署配置orchestrator;仅在服务主机上即可。
  • 不需要访问后端数据库
  • 需要访问 HTTP api
  • 需要设置ORCHESTRATOR_API环境变量。
    • 要么为代理提供单个端点,例如
    export ORCHESTRATOR_API=https://orchestrator.myservice.com:3000/api
    • 或者提供所有orchestrator端点,并orchestrator-client自动选择领导者(不需要代理),例如
    export ORCHESTRATOR_API="https://orchestrator.host1:3000/api https://orchestrator.host2:3000/api https://orchestrator.host3:3000/api"
  • 您可以在 /etc/profile.d/orchestrator-client.sh 中设置环境变量。如果该文件存在,它将被内联orchestrator-client

使用示例

显示当前已知的集群(复制拓扑):

orchestrator-client -c clusters

发现、忘记一个实例:

orchestrator-client -c discover -i 127.0.0.1:22987
orchestrator-client -c forget -i 127.0.0.1:22987

打印拓扑实例的 ASCII 树。通过以下方式传递集群名称-i(参见clusters上面的命令):

orchestrator-client -c topology -i 127.0.0.1:22987

示例输出:

127.0.0.1:22987
+ 127.0.0.1:22989
  + 127.0.0.1:22988
+ 127.0.0.1:22990

在拓扑中移动副本:

orchestrator-client -c relocate -i 127.0.0.1:22988 -d 127.0.0.1:22987

结果拓扑:

127.0.0.1:22987
+ 127.0.0.1:22989
+ 127.0.0.1:22988
+ 127.0.0.1:22990

幕后花絮

命令行接口为 API 调用提供了一个很好的包装器,然后其输出从 JSON 格式转换为文本格式。

例如,命令:

orchestrator-client -c discover -i 127.0.0.1:22987

可以转化为(为了方便起见,此处进行了简化):

curl "$ORCHESTRATOR_API/discover/127.0.0.1/22987" | jq '.Details | .Key'

元命令

  • orchestrator-client -c help:列出所有可用的命令
  • orchestrator-client -c which-api:API 端点orchestrator-client将用于调用命令的输出。当通过 提供多个端点时,这非常有用$ORCHESTRATOR_API
  • orchestrator-client -c api -path clusters:调用通用 HTTP API 调用(在本例中clusters)并返回原始 JSON 响应。

你可能感兴趣的:(orchestrator,mysql)