HTTP 请求成功一律返回 200 ,具体信息请参考业务码,通用业务码参考如下,具体业务的业务码请参见下面的接口文档
业务码 | 值 | 说明 |
---|---|---|
200 | MafuMafu~ | 请求成功 |
401 | Unauthorized! You are not Cocoa! | 认证失败 |
405 | Not Allowed! Cocoa is soooo kawaii, Do you still sure you really want to eat Cocoa??? | 节点不允许该类型操作 |
package monitor
供外部探测用
请求方式 | Get |
---|---|
状态码 | 200(服务正常)【leader/follower】 |
/v1/badge
节点信息标识
GET 请求,一个 Badge ,展示节点信息,效果类似如下,右边自动替换为节点友好名称,建议节点友好名称不要超过 11 个英文字符
Prometheus 标准输出,直接对接 Prometheus 即可,其配置文件增加以下内容
- job_name: "CocoaSyncer"
static_configs:
- targets: ["<IP>:<API 端口>"]
非程序访问接口,浏览器打开获取运行状态(密钥相关信息和节点代号不显示)
供程序使用的接口
请求方式 | Post / json |
---|---|
参数 | 节点的 secret |
业务状态码 | 200(服务正常)【leader/follower】{返回集群信息} |
201(服务初始化成功,等待加入集群)【follower】 |
返回数据示例
{
"statusCode": 200,
"statusString": "MafuMafu~",
"cocoaBasic": {
"apiPort": 44443,
"nodeName": "***",
"nodeCode": "**",
"nodeAddress": "http://127.0.0.1:44443",
"workMode": "leader",
"cocoaSecret": "***",
"reverseProxy": true,
"otherCocoaSyncer": [
{
"nodeName": "***",
"nodeCode": "***",
"nodeAddress": "http://127.0.0.1:44443",
"workMode": "leader",
"cocoaSecret": "999",
"ISPs": [
"default",
"CT",
"OverSea"
],
"networkType": "IPV4",
"statusCode": 200,
"watchDog": "2023-09-18T22:54:22.0765568+08:00",
"cocoaManagedService": [
{
"serviceName": "测试",
"domain": "luckykeeper.site",
"record": "test",
"platformProvider": "Ali"
},
{
"serviceName": "测试2",
"domain": "luckykeeper.site",
"record": "test2",
"platformProvider": "Ali"
}
]
},
{
"nodeName": "***",
"nodeCode": "**",
"nodeAddress": "http://127.0.0.1:44444",
"workMode": "follower",
"cocoaSecret": "***",
"ISPs": [
"CU",
"CMCC",
"CNEdu"
],
"networkType": "IPV4",
"statusCode": 200,
"watchDog": "2023-09-18T22:54:11.0115931+08:00",
"cocoaManagedService": [
{
"serviceName": "测试",
"domain": "luckykeeper.site",
"record": "test",
"platformProvider": "Ali"
},
{
"serviceName": "测试2",
"domain": "luckykeeper.site",
"record": "test2",
"platformProvider": "Ali"
}
]
}
],
"cocoaManagedService": [
{
"serviceName": "测试",
"domain": "luckykeeper.site",
"record": "test",
"platformProvider": "Ali"
},
{
"serviceName": "测试2",
"domain": "luckykeeper.site",
"record": "test2",
"platformProvider": "Ali"
}
],
"cloudPlatformInfo": [
{
"platformProvider": "Ali",
"accessKey": "***",
"accessSecret": "***"
}
],
"timeout": 10,
"DataBaseType": "mysql",
"Dsn": "root:***@tcp(192.168.1.2:3306)/cocoasyncer?charset=utf8mb4",
"createdAt": "2023-09-07T15:52:46+08:00",
"updatedAt": "2023-09-18T22:54:22+08:00",
"configImported": true
}
}
数据推送:Leader 节点推向 Follower 节点,数据只存在此方向上的流动(看门狗数据除外),当 Leader 节点宕机,只能等待 Leader 节点再次启动才能对整个集群进行控制(此设计为业务场景原因)
Leader 节点不提供业务接口
请求方式 | Post / json |
---|---|
参数 | 节点的 secret,model.CocoaBasic |
业务状态码 | 200 成功 |
405 非 follower 节点不允许调用 |
由 CLI 提供该能力