Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

107 строки
5.2 KiB

5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
5 лет назад
  1. -module(agCluster).
  2. -include("erlArango.hrl").
  3. -compile(inline).
  4. -compile({inline_size, 128}).
  5. -compile([export_all, nowarn_export_all]).
  6. %% doc_address:https://www.arangodb.com/docs/stable/http/cluster.html
  7. % 集群的HTTP接口
  8. % 本章介绍了ArangoDB群集的REST API。
  9. % 服务器ID
  10. % 服务器角色
  11. % 集群统计
  12. % 集群健康
  13. % 集群维护
  14. % 机构
  15. % 如何修复与坏簇distributeShardsLike集在描述修理章节。
  16. % 了解服务器的内部ID
  17. % GET /_admin/server/id
  18. % 返回集群中服务器的ID。如果服务器未在集群模式下运行,则请求将失败。
  19. % 返回码
  20. % 200:当服务器以群集模式运行时返回。
  21. % 500:当服务器未在群集模式下运行时返回。
  22. serverId(PoolNameOrSocket) ->
  23. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/id">>, [], undefined).
  24. % 返回集群中服务器的角色
  25. % GET /_admin/server/role
  26. % 返回集群中服务器的角色。该角色在结果的role属性中返回。角色的可能返回值是:
  27. % SINGLE:服务器是没有集群的独立服务器
  28. % COORDINATOR:服务器是集群中的协调器
  29. % PRIMARY:服务器是集群中的DB-Server
  30. % SECONDARY:不再使用此角色
  31. % AGENT:服务器是集群中的代理节点
  32. % UNDEFINED:在集群中,如果无法确定服务器角色,则返回UNDEFINED。
  33. % 在所有情况下均返回HTTP 200。
  34. % error:始终为假
  35. % code:HTTP状态码,始终为200
  36. % errorNum:服务器错误号
  37. % role:之一[ SINGLE,COORDINATOR,PRIMARY,SECONDARY,AGENT,UNDEFINED ]
  38. serverRole(PoolNameOrSocket) ->
  39. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/role">>, [], undefined).
  40. % 数据库服务器的查询统计信息
  41. % 允许查询集群中DB-Server的统计信息
  42. % GET /_admin/clusterStatistics
  43. % 查询参数
  44. % DBserver(必填):查询给定DB-Server的统计信息
  45. % 返回码
  46. % 200:
  47. % 400:数据库服务器的ID
  48. % 403:
  49. clusterStats(PoolNameOrSocket, QueryPars) ->
  50. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  51. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/clusterStatistics", QueryBinary/binary>>, [], undefined).
  52. % 返回监督(机构)评估的集群的运行状况
  53. % GET /_admin/cluster/health
  54. % 查询群集的运行状况以进行监视。该响应是一个JSON对象,包含标准code,error,errorNum,和errorMessage字段适当。特定于端点的字段如下:
  55. % ClusterId:标识集群的UUID字符串
  56. % Health:一个对象,该对象包含群集中每个节点的描述性子对象。
  57. % <nodeID>:中的每个条目Health将由节点ID键入,并包含以下属性:
  58. % Endpoint:代表服务器网络端点的字符串。
  59. % Role:服务器扮演的角色。可能的值是"AGENT","COORDINATOR"和"DBSERVER"。
  60. % CanBeDeleted:布尔值,表示是否可以安全地从群集中删除节点。
  61. % Version:该节点使用的ArangoDB的版本字符串。
  62. % Engine:该节点使用的存储引擎。
  63. % Status:指示监督(机构)评估的节点运行状况的字符串。对于协调器和DB-Servers节点运行状况,应将其视为真实的主要来源。如果节点正常响应请求,则为"GOOD"。如果错过了一个心跳,那就是"BAD"。如果在缺少心跳约15秒钟后通过监督宣布它失败,则会对其进行标记"FAILED"。
  64. % 此外,它还将具有以下属性:
  65. % 协调器和数据库服务器
  66. % SyncStatus:节点上次报告的同步状态。该值主要用于确定的值Status。可能的值包括"UNKNOWN","UNDEFINED","STARTUP","STOPPING","STOPPED","SERVING","SHUTDOWN"。
  67. % LastAckedTime:ISO 8601时间戳记,指定接收到的最后一个心跳。
  68. % ShortName:代表服务器的简称的字符串,例如"Coordinator0001"。
  69. % Timestamp:ISO 8601时间戳记,指定接收到的最后一个心跳。(已弃用)
  70. % Host:可选字符串,指定主机(如果已知)。
  71. % 仅协调员
  72. % AdvertisedEndpoint:表示已播报端点的字符串(如果已设置)。(例如,外部IP地址或负载平衡器,可选)
  73. % 代理商
  74. % Leader:此节点视为领导者的代理的ID。
  75. % Leading:此座席是否为领导者(true)或不是(false)。
  76. % LastAckedTime:自上次以来的时间(acked以秒为单位)。
  77. % 返回码
  78. % 200:
  79. clusterHealth(PoolNameOrSocket) ->
  80. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/cluster/health">>, [], undefined).
  81. % 启用或禁用集群监督(代理)维护模式
  82. % PUT /_admin/cluster/maintenance
  83. % 通过此API,您可以临时启用监督维护模式。请注意,启用维护模式后,不会进行任何类型的自动故障转移。该集群监控会自动重新激活自身60分钟禁用后。
  84. % 要启用维护模式,请求正文必须包含字符串"on"。要禁用它,请发送字符串"off"(请注意,该字符串 必须为小写并包括引号)。
  85. % 返回码
  86. % 200:
  87. % 400:
  88. % 501:
  89. % 504:
  90. setClusterMaintenance(PoolNameOrSocket, OnOrOff) ->
  91. agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_admin/cluster/maintenance">>, [], OnOrOff).
  92. %%%%%%%%%%%%%%% Agency ??????????????????????????