当前位置: 首页 > news >正文

orchestrator介绍3.4 web API 的使用

目录

使用 web  API

API使用简单举例

查看所有的API

实例 JSON 详解

API使用举例


使用 web  API

orchestrator提供精心设计的 Web API。

敏锐的 Web 开发人员会注意到(通过Firebug or Developer Tools)Web 界面如何完全依赖于 JSON API 请求。

开发人员可以使用 API 来实现自动化。

API使用简单举例

举例来说:

  • /api/instance/:host/:port:读取并返回实例的详细信息(示例/api/instance/mysql10/3306
  • /api/discover/:host/:port:发现给定实例(正在运行的orchestrator服务将从那里获取它并递归扫描整个拓扑)
  • /api/relocate/:host/:port/:belowHost/:belowPort(尝试)将一个实例移动到另一个实例下方。 orchestrator选择最佳行动方案。
  • /api/relocate-replicas/:host/:port/:belowHost/:belowPort(尝试)将一个实例的副本移动到另一个实例下方。 orchestrator选择最佳行动方案。
  • /api/recover/:host/:post:假设有需要恢复的内容,在给定实例上启动恢复。
  • /api/force-master-failover/:mycluster:强制在给定集群上立即进行故障转移。

查看所有的API

事实上的列表是代码,请参阅api.go(向下滚动到 RegisterRequests)。

您可能还会喜欢查看Orchestrator-client(源代码)以了解命令行如何转换为 API 调用。

或者,只需使用Orchestrator-client作为您的 API 客户端,这就是它的用途。

实例 JSON 详解

许多 API 调用返回 instance 对象,描述单个 MySQL 服务器。该示例后面是字段细分:

{"Key": {"Hostname": "mysql.02.instance.com","Port": 3306},"Uptime": 45,"ServerID": 101,"Version": "5.6.22-log","ReadOnly": false,"Binlog_format": "ROW","LogBinEnabled": true,"LogReplicationUpdatesEnabled": true,"SelfBinlogCoordinates": {"LogFile": "mysql-bin.015656","LogPos": 15082,"Type": 0},"MasterKey": {"Hostname": "mysql.01.instance.com","Port": 3306},"ReplicationSQLThreadRuning": true,"ReplicationIOThreadRuning": true,"HasReplicationFilters": false,"SupportsOracleGTID": true,"UsingOracleGTID": true,"UsingMariaDBGTID": false,"UsingPseudoGTID": false,"ReadBinlogCoordinates": {"LogFile": "mysql-bin.015993","LogPos": 20146,"Type": 0},"ExecBinlogCoordinates": {"LogFile": "mysql-bin.015993","LogPos": 20146,"Type": 0},"RelaylogCoordinates": {"LogFile": "mysql_sandbox21088-relay-bin.000051","LogPos": 16769,"Type": 1},"LastSQLError": "","LastIOError": "","SecondsBehindMaster": {"Int64": 0,"Valid": true},"SQLDelay": 0,"ExecutedGtidSet": "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-49","ReplicationLagSeconds": {"Int64": 0,"Valid": true},"Replicas": [ ],"ClusterName": "mysql.01.instance.com:3306","DataCenter": "","PhysicalEnvironment": "","ReplicationDepth": 1,"IsCoMaster": false,"IsLastCheckValid": true,"IsUpToDate": true,"IsRecentlyChecked": true,"SecondsSinceLastSeen": {"Int64": 9,"Valid": true},"CountMySQLSnapshots": 0,"IsCandidate": false,"UnresolvedHostname": ""
}

实例的结构不断发展,而文档总是会落后。话虽如此,关键属性是:

  • Key:实例的唯一指示符:主机和端口的组合
  • ServerID:MySQLserver_id参数
  • Version:MySQL版本
  • ReadOnly:全局read_only布尔值
  • Binlog_format:MySQL 全局参数 binlog_format
  • LogBinEnabled:是否启用二进制日志
  • LogReplicationUpdatesEnabled:MySQL参数是否log_slave_updates启用
  • SelfBinlogCoordinates:二进制日志文件和此实例写入的位置(如SHOW MASTER STATUS
  • MasterKey:主机名和端口(如果有)
  • ReplicationSQLThreadRuning: 直接映射自SHOW SLAVE STATUS'sSlave_SQL_Running
  • ReplicationIOThreadRuning: 直接映射自SHOW SLAVE STATUS'sSlave_IO_Running
  • HasReplicationFilters: true 如果有任何复制过滤器
  • SupportsOracleGTID:如果配置为 true gtid_mode(Oracle MySQL >= 5.6)
  • UsingOracleGTID:如果副本通过 Oracle GTID 复制,则为 true
  • UsingMariaDBGTID:如果副本通过 MariaDB GTID 复制,则为 true
  • UsingPseudoGTID:如果已知副本具有伪 GTID 坐标,则为 true(请参阅相关DetectPseudoGTIDQuery配置)
  • ReadBinlogCoordinates:(复制时)从主机读取的坐标(轮询的内容IO_THREAD
  • ExecBinlogCoordinates:(复制时)现在正在执行的master坐标(SQL_THREAD执行了什么)
  • RelaylogCoordinates:(复制时)当前正在执行的中继日志的坐标
  • LastSQLError: 复制自SHOW SLAVE STATUS
  • LastIOError: 复制自SHOW SLAVE STATUS
  • SecondsBehindMaster: 直接从SHOW SLAVE STATUS' 映射Seconds_Behind_Master "Valid": false表示 aNULL
  • SQLDelay: 配置的MASTER_DELAY
  • ExecutedGtidSet:如果使用Oracle GTID,执行的GTID集
  • ReplicationLagSeconds:如果ReplicationLagQuery提供,计算出的副本滞后;否则与SecondsBehindMaster
  • Replicas:MySQL 副本主机名和端口列表)
  • ClusterName:与该实例关联的集群的名称;唯一标识簇
  • DataCenter:(元数据)数据中心的名称,由DataCenterPattern配置变量推断
  • PhysicalEnvironment:(元数据)环境名称,由PhysicalEnvironmentPattern配置变量推断
  • ReplicationDepth:与master的距离(master是0,直接副本是1等等)
  • IsCoMaster:当此实例是主-主对的一部分时为 true
  • IsLastCheckValid:最后一次尝试读取此瞬间是否成功
  • IsUpToDate:该数据是否是最新的
  • IsRecentlyChecked:最近是否对此实例进行了读取尝试
  • SecondsSinceLastSeen:自上次成功访问此实例以来经过的时间
  • CountMySQLSnapshots:已知快照数量(数据由 提供orchestrator-agent
  • IsCandidate:(元数据)true当该实例已通过CLI 命令标记为候选实例register-candidate时。可用于崩溃恢复以优先考虑故障转移选项
  • UnresolvedHostname:此主机未解析的register-hostname-unresolve名称,如CLI 命令所示

API使用举例

  • 获取有关集群的一般信息:
curl -s "http://my.orchestrator.service.com/api/cluster-info/my_cluster" | jq .{"ClusterName": "my-cluster-fqdn:3306","ClusterAlias": "my_cluster","ClusterDomain": "my-cluster.com","CountInstances": 10,"HeuristicLag": 0,"HasAutomatedMasterRecovery": true,"HasAutomatedIntermediateMasterRecovery": true
}
  • 查找my_cluster没有二进制日志记录的主机:
curl -s "http://my.orchestrator.service.com/api/cluster/alias/my_cluster" | jq '.[] | select(.LogBinEnabled==false) .Key.Hostname' -r
  • my_cluster找到的 master的直接副本:
curl -s "http://my.orchestrator.service.com/api/cluster/alias/my_cluster" | jq '.[] | select(.ReplicationDepth==1) .Key.Hostname' -r

或者:

master=$(curl -s "http://my.orchestrator.service.com/api/cluster-info/my_cluster" | jq '.ClusterName' | tr ':' '/')
curl -s "http://my.orchestrator.service.com/api/instance-replicas/${master}" | jq '.[] | .Key.Hostname' -r
  • 查找所有中级大师my_cluster
curl -s "http://my.orchestrator.service.com/api/cluster/alias/my_cluster" | jq '.[] | select(.MasterKey.Hostname!="") | select(.Replicas!=[]) .Key.Hostname'

相关文章:

orchestrator介绍3.4 web API 的使用

目录 使用 web API API使用简单举例 查看所有的API 实例 JSON 详解 API使用举例 使用 web API orchestrator提供精心设计的 Web API。 敏锐的 Web 开发人员会注意到(通过Firebug or Developer Tools)Web 界面如何完全依赖于 JSON API 请求。 开发人员可…...

市场复盘总结 20240122

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 昨日主题投资 连板进级率 6/39 15.3% 二进三: 进级率低 0% 最常用的二种方法: 方法…...

TCP 三次握手 四次挥手以及滑动窗口

TCP 三次握手 简介: TCP 是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的 “ 连接” ,其实是客户端和服务器的内存里保存的一份关于对方的信息,如 IP 地址、端口号等。 TCP 可以…...

yum指令——Linux的软件包管理器

. 个人主页:晓风飞 专栏:数据结构|Linux|C语言 路漫漫其修远兮,吾将上下而求索 文章目录 什么是软件包yum指令1.yum 是什么?2.Linux系统(Centos)的生态 3.yum的相关操作安装卸载yum的相关操作小结 软件源安…...

【WPF.NET开发】​规划WPF应用程序性能

本文内容 对各种场景进行考虑定义目标了解平台使性能优化成为一个迭代过程构建图形丰富性 能否成功实现性能目标取决于如何制定性能策略。 规划是开发任何产品的第一阶段。 本主题介绍一些非常简单的规则,用于开发良好的性能策略。 1、对各种场景进行考虑 场景可…...

Ubuntu22.04报错:ValueError: the symlink /usr/bin/python3 does not point to ...

目录 一、背景 二、如何解决呢? 三、解决步骤 1. 确定可用的 Python 版本 2. 重新设置符号链接 3. 选择默认版本 4. 验证: 四、update-alternatives 详解 1. 命令语法 2. 常用选项 --install添加备选项。 --config:选择默认版本。 …...

什么是 React的refs?为什么它们很重要

Refs是React中的一个特殊属性,用于访问在组件中创建的DOM元素或组件实例。 Refs的重要性在于它们提供了一种直接访问DOM元素或组件实例的方式,使得我们可以在需要时操作它们。在某些情况下,例如在处理表单输入、媒体播放或触发动画等场景下&…...

使用yarn时--解决error Error: certificate has expired问题

【HTTPS 证书验证失败】导致的这个问题! 解决方案:将yarn配置中的 strict-ssl 设置为 flase , 在 info yarn config 信息中, strict-ssl 为 true,表示需要验证 HTTPS 证书。我们可以将 strict-ssl 设置为 false,跳过 H…...

Sql server强制走索引

遇到一个奇怪的问题,同样的SQL,只是一个where条件不一样,一个是column1 AAA,一个是column1 BBB,他们的查询效率却差距甚大,一个要60秒,一个1秒以下。查看查询计划,一个使用了索引&…...

解决Android Studio gradle下载超时和缓慢问题(win10)

解决超时问题 一般配置阿里云代理就可以解决。 具体配置方法,参考:https://blog.csdn.net/zhangjin1120/article/details/121739782 解决下载缓慢问题 直接去腾讯云镜像下载: https://mirrors.cloud.tencent.com/gradle/ 下载好了之后&…...

Ps:根据 HSB 调色(以可选颜色命令为例)

在数字色彩中,RGB 和 HSV(又称 HSB)是两种常用的颜色表示方式(颜色模型)。 在 RGB 颜色模式下,Photoshop 的红(Red)、绿(Green)、蓝(Blue&#xf…...

MySQL:事务隔离级别详解

事务一共有四个特性:原子性、隔离性、持久性、一致性。简称ACID。本文所将就是其中的隔离性。 1、事务中因为隔离原因导致的并发问题有哪些? 脏读:当事务A对一个数据进行修改,但这个操作还未提交,但此时事务B就已经读…...

golang 根据URL获取文件名

只有一个文件地址,但是没有文件名称,文件地址:http://XXXXXXX/getfile.aspx?fileid999 但是系统需要把文件名称也写入到数据库 可以根据 resp.Header["Content-Disposition"] 获取文件名 resp.Header["Content-Disposition&q…...

【Javaweb程序设计】【C00163】基于SSM房屋中介服务平台(论文+PPT)

基于SSM房屋中介服务平台(论文PPT) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的房屋中介服务平台 本系统分为前台、管理员、用户3个功能模块。 前台:当游客打开系统的网址后,首先看到的就是首页界面。…...

ES文档索引、查询、分片、文档评分和分析器技术原理

技术原理 索引文档 索引文档分为单个文档和多个文档。 单个文档 新建单个文档所需要的步骤顺序: 客户端向 Node 1 发送新建、索引或者删除请求。节点使用文档的 _id 确定文档属于分片 0 。请求会被转发到 Node 3,因为分片 0 的主分片目前被分配在 …...

element plus使用问题

文章目录 element plusvue.config.js注意1、有时候会报错 not a function2、使用 ElMessage 报错3、 element plus 版本过高4、警告Feature flag VUE_PROD_HYDRATION_MISMATCH_DETAILS is not explicitly defined.5、报错 ResizeObserver loop completed with undelivered noti…...

洛谷p1036选数

[NOIP2002 普及组] 选数 题目描述 已知 n n n 个整数 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1​,x2​,⋯,xn​&#xff0c;以及 1 1 1 个整数 k k k&#xff08; k < n k<n k<n&#xff09;。从 n n n 个整数中任选 k k k 个整数相加&#xff0c;可分别得…...

【JavaSE篇】——数组的定义与使用

目录 本章的目标&#xff1a; &#x1f388;数组的基本概念 &#x1f36d;创建数组 &#x1f36d;数组的初始化 &#x1f36d;数组的使用 &#x1f449;数组中元素访问 &#x1f449;遍历数组 &#x1f388;数组是引用类型 &#x1f36d;初始JVM的内存分布 &#x1f…...

HCS 华为云Stack产品组件

HCS 华为云Stack产品组件 Cloud Provisioning Service(CPS) 负责laas的云平台层的部署和升级是laas层中真正面向硬件设备&#xff0c;并将其池化软件化的部件。 Service OM 资源池(计算/存储/网络)以及基础云服务(ECS/EVS/PC)的管理工具。 ManageOne ManageOne包括服务中心…...

四、MySQL之增删改

一、插入数据 1.1、VALUES的方式添加 使用这种语法一次只能向表中插入一条数据。 1.1.1、为表的所有字段按默认顺序插入数据 INSERT INTO 表名 VALUES (value1,value2,....);// 值列表中需要为表的每一个字段指定值&#xff0c;并且值的顺序必须和数据表中字段定义时的顺序相…...

MQ面试题之Kafka

前言 前文介绍了消息队列相关知识&#xff0c;并未针对某个具体的产品&#xff0c;所以略显抽象。本人毕业到现在使用的都是公司内部产品&#xff0c;对于通用产品无实际经验&#xff0c;但是各种消息中间件大差不差&#xff0c;故而本次选择一个相对较熟悉的Kafka进行详细介绍…...

2023年CSDN年底总结-独立开源创作者第一年

2023年最大的变化&#xff0c;就是出来创业&#xff0c;当独立开源创作者&#xff0c;这一年发起SolidUI开源项目&#xff0c;把知乎重新开始运营起来。CSDN粉丝破万&#xff0c;CSDN博客专家和AI领域创作者。 2023年年度关键词&#xff1a;创业 https://github.com/CloudOrc…...

hardware simulation——编译框架优化

目录 介绍 修改前的最新代码和框架 学习和修改 最终版本 介绍 -------------------------------------------------------------------------------------------------------------------------- https://www.cnblogs.com/wittxie/p/9836097.html 上次那个虽然能完成基本…...

Leetcode刷题笔记题解(C++):1971. 寻找图中是否存在路径

思路&#xff1a; 1.建立图集&#xff0c;二维数组&#xff0c;path[0]里面存放的就是与0相连的节点集合 2.用布尔数组来记录当前节点是否被访问过&#xff0c;深度优先会使用到 3.遍历从起点开始能直接到达的点&#xff08;即与起点相邻的点&#xff09;&#xff0c;判断那…...

ARM常用汇编指令

文章目录 前言一、处理器内部数据传输指令MOV&#xff1a; 将数据从一个寄存器复制到另一个寄存器。MRS&#xff1a; 将特殊寄存器(CPSR,SPSR)中的数据传给通用寄存器。MSR&#xff1a; 将通用寄存器中的数据传给特殊寄存器(CPSR,SPSR)。 二、存储器访问指令LDR:用于从内存中加…...

kali系统入侵电脑windows(win11系统)渗透测试,骇入电脑教学

本次渗透测试将使用kali虚拟机&#xff08;攻击机&#xff09;对本机&#xff08;靶机&#xff09;进行入侵并监控屏幕 声明&#xff1a;本篇仅仅是将本机作为靶机的一次简易渗透测试&#xff0c;实际情况中基本不可能出现如此简单的木马骇入&#xff08;往往在上传木马时就被防…...

力扣hot100 矩阵置零 标识位

Problem: 73. 矩阵置零 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考 复杂度 时间复杂度: O ( n m ) O(nm) O(nm) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public static void setZeroes(int[][] matrix) {int n matrix.length;i…...

Android App开发-简单控件(3)——常用布局

3.3 常用布局 本节介绍常见的几种布局用法&#xff0c;包括在某个方向上顺序排列的线性布局&#xff0c;参照其他视图的位置相对排列的相对布局&#xff0c;像表格那样分行分列显示的网格布局&#xff0c;CommonLayouts以及支持通过滑动操作拉出更多内容的滚动视图。 3.3.1 线…...

Linux使用二进制包安装MySQL

目录 一、软件包下载 二、上传软件包到Linux根目录 1、使用xftp将软件包上传到根目录 2、解压缩 三、准备工作 四、初始化软件 五、设置MySQL的配置文件 六、配置启动脚本 一、软件包下载 官网下载&#xff1a;MySQL :: Download MySQL Community Server 二、上传软件…...

【vue3-pbstar-admin】一款基于vue3和nodejs的简洁后台管理系统

Vue3-pbstar-admin 是一个简洁的后台解决方案&#xff0c;提供了基础的用户体系和页面接口权限配置&#xff0c;方便用户进行自定义开发&#xff0c;避免不必要的代码冗余。该方案结合了 Vue3、Element-Plus、Pinia 和 Vite 等先进技术&#xff0c;实现高效的页面布局、状态管理…...