クラスター API¶
InitCluster¶
バージョン 2022.2.0 で追加。
- x-sora-target:
Sora_20221221.InitCluster
クラスターを初期化する際に実行する必要がある API です。
クラスター初期化時に、参加させるいずれかのノードに対して行ってください。
node_name_list にはクラスターに参加するノードのリストを指定してください。
API が成功すると、そのリストのノードで構成されるクラスターが構築されます。
キー |
型 |
|---|---|
node_name_list |
array of string |
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20221221.InitCluster" \
--json '{"node_name_list":["[email protected]","[email protected]","[email protected]"]}' \
| jq .
{
"node_name_list": [
"[email protected]",
"[email protected]",
"[email protected]"
]
}
RegisterClusterNode¶
- x-sora-target:
Sora_20211215.RegisterClusterNode
指定したクラスターにノードを登録します。
登録したいクラスターに属するノードのいずれかを contact_node_name で指定してください。
クラスターに属していれば、どのノードでもかまいません。
- 登録したいクラスターがすでに初期化されている必要があります。
- クラスターに登録するためには、登録したいクラスターの過半数のノードが正常に稼働している必要があります
キー |
型 |
|---|---|
contact_node_name |
string |
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20211215.RegisterClusterNode" \
--json '{"contact_node_name":"[email protected]"}' \
| jq .
{
"node_name_list": [
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]"
]
}
ListClusterNodes¶
- x-sora-target:
Sora_20211215.ListClusterNodes
クラスターのノード一覧を表示します。
一時的に離脱しているノードの場合は connected が false になります。
出力対象のノードが離脱中、またはノードの情報取得に失敗した場合には以下の項目は出力されません。
- external_api_url
- external_signaling_url
- version
- mode
キー |
型 |
内容 |
|---|---|---|
external_api_url |
string |
|
license_max_nodes |
integer |
ライセンスの最大ノード数 |
license_max_connections |
integer |
ライセンスの最大同時接続数 |
license_serial_code |
string |
ライセンスのシリアルコード |
license_type |
string |
ライセンスのタイプ |
node_name |
string |
|
error |
string |
API 実行ノードと正常に接続はできているが、情報の取得に失敗した際のエラー理由 |
connected |
boolean |
API 実行ノードと正常に接続できているかどうか |
external_signaling_url |
string |
|
temporary_node |
boolean |
テンポラリーノードかどうか |
version |
string |
Sora のバージョン |
mode |
string |
モード (normal / block_new_session / block_new_connection) |
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20211215.ListClusterNodes" \
| jq .
[
{
"external_api_url": "http://192.0.2.5:3000/",
"license_max_connections": 500,
"license_max_nodes": 10,
"license_serial_code": "ABCDEF-SRA-E001-203801-N3-100",
"license_type": "Experimental",
"node_name": "[email protected]",
"mode": "normal",
"connected": true,
"external_signaling_url": "wss://node-01.example.com/signaling",
"version": "2024.1.0",
"temporary_node": false
},
{
"api_url": "http://192.0.2.7:3000/",
"license_max_connections": 500,
"license_max_nodes": 10,
"license_serial_code": "ABCDEF-SRA-E002-203801-N3-100",
"license_type": "Experimental",
"node_name": "[email protected]",
"mode": "normal",
"connected": true,
"external_signaling_url": "wss://node-02.example.com/signaling",
"version": "2024.1.0",
"temporary_node": false
},
{
"license_max_connections": 500,
"license_max_nodes": 10,
"license_serial_code": "ABCDEF-SRA-E003-203801-N3-100",
"license_type": "Experimental",
"node_name": "[email protected]",
"connected": false,
"temporary_node": false
},
{
"error": "{error,{erpc,timeout}}",
"license_max_connections": 500,
"license_max_nodes": 10,
"license_serial_code": "ABCDEF-SRA-E004-203801-N3-100",
"license_type": "Experimental",
"node_name": "[email protected]",
"connected": false,
"temporary_node": false
}
]
ListClusterChannels¶
- x-sora-target:
Sora_20211215.ListClusterChannels
クラスターチャネル割り当て一覧を表示します。
キー |
型 |
内容 |
|---|---|---|
channel_id |
string |
チャネル ID |
owners |
string |
担当ノード |
owners には以下が含まれます。
キー |
型 |
内容 |
|---|---|---|
node_name |
string |
ノード名 |
connected |
boolean |
担当ノードが API 実行ノードと正常に接続できているかどうか |
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20211215.ListClusterChannels" \
| jq .
[
{
"channel_id": "sora",
"owners": [
{
"node_name": "[email protected]",
"connected": true
}
]
},
{
"channel_id": "lemon",
"owners": [
{
"node_name": "[email protected]",
"connected": true
}
]
},
{
"channel_id": "hisui",
"owners": [
{
"node_name": "[email protected]",
"connected": true
}
]
},
{
"channel_id": "zakuro",
"owners": [
{
"node_name": "[email protected]",
"connected": true
}
]
}
]
PurgeClusterNode¶
- x-sora-target:
Sora_20220629.PurgeClusterNode
復旧がすぐには難しい障害が発生したノードや、縮退し再参加する予定が無いノードの情報をクラスターから完全に消去します。
この API は 1 クラスターにつき 1 回実行すればすべての参加ノードから指定したノード情報が完全に消去されます。
- この API の実行時には、消去対象のノードは停止している必要があります
- この API が正常に完了するためには、過半数のノードが正常に稼働している必要があります
- API を実行するノードは、クラスターに参加していて、正常に稼働しているノードであればどのノードでもかまいません
キー |
型 |
|---|---|
target_node_name |
string |
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20220629.PurgeClusterNode" \
--json '{"target_node_name":"[email protected]"}' \
| jq .
{
"target_node_name": "[email protected]"
}
$ curl -sS \
-X POST \
http://127.0.0.1:3001/ \
-H "x-sora-target: Sora_20220629.PurgeClusterNode" \
--json '{"target_node_name":"[email protected]"}' \
| jq .
{
"error_reason": {
"target_node": "[email protected]"
},
"error_type": "NODE-IS-ALIVE"
}