优化TOA相关API

This commit is contained in:
GoEdgeLab
2023-07-24 09:56:49 +08:00
parent 709e27aac0
commit e910bb7dbf
4 changed files with 714 additions and 584 deletions

View File

@@ -3154,7 +3154,10 @@
"responseMessageName": "RPCSuccess",
"code": "rpc updateHTTPWebOptimization(UpdateHTTPWebOptimizationRequest) returns (RPCSuccess);",
"doc": "更改页面优化配置",
"roles": [],
"roles": [
"admin",
"user"
],
"isDeprecated": false
},
{
@@ -5720,6 +5723,17 @@
"admin"
],
"isDeprecated": false
},
{
"name": "findNodeTOAConfig",
"requestMessageName": "FindNodeTOAConfigRequest",
"responseMessageName": "FindNodeTOAConfigResponse",
"code": "rpc findNodeTOAConfig(FindNodeTOAConfigRequest) returns (FindNodeTOAConfigResponse);",
"doc": "查找节点的TOA配置",
"roles": [
"node"
],
"isDeprecated": false
}
],
"filename": "service_node.proto",
@@ -14045,12 +14059,12 @@
},
{
"name": "CopyNodeActionsToNodeClusterRequest",
"code": "message CopyNodeActionsToNodeClusterRequest {\n\tint64 nodeId = 1;\n}",
"code": "message CopyNodeActionsToNodeClusterRequest {\n\tint64 nodeId = 1; // 节点ID\n}",
"doc": "同步动作设置到集群"
},
{
"name": "CopyNodeActionsToNodeGroupRequest",
"code": "message CopyNodeActionsToNodeGroupRequest {\n\tint64 nodeId = 1;\n}",
"code": "message CopyNodeActionsToNodeGroupRequest {\n\tint64 nodeId = 1; // 节点ID\n}",
"doc": "同步动作设置到分组"
},
{
@@ -19273,31 +19287,16 @@
"code": "message FindNodeGlobalServerConfigResponse {\n\tbytes globalServerConfigJSON = 1;\n}",
"doc": ""
},
{
"name": "FindNodeHTTP3PoliciesRequest",
"code": "message FindNodeHTTP3PoliciesRequest {\n\tint64 nodeId = 1; // 节点ID\n}",
"doc": "查找节点的HTTP3策略"
},
{
"name": "FindNodeHTTP3PoliciesResponse",
"code": "message FindNodeHTTP3PoliciesResponse {\n\trepeated HTTP3Policy http3Policies = 1; // HTTP3策略列表\n\n\n\tmessage HTTP3Policy {\n\t\tint64 nodeClusterId = 1; // 集群ID\n\t\tbytes http3PolicyJSON = 2; // HTTP3策略配置\n\t}\n}",
"doc": ""
},
{
"name": "FindNodeHTTPCCPoliciesRequest",
"code": "message FindNodeHTTPCCPoliciesRequest {\n\tint64 nodeId = 1; // 节点ID\n}",
"doc": "查找节点的HTTP CC策略"
},
{
"name": "FindNodeHTTPCCPoliciesResponse",
"code": "message FindNodeHTTPCCPoliciesResponse {\n\trepeated HTTPCCPolicy httpCCPolicies = 1; // HTTP CC策略列表\n\n\n\tmessage HTTPCCPolicy {\n\t\tint64 nodeClusterId = 1; // 集群ID\n\t\tbytes httpCCPolicyJSON = 2; // HTTP CC策略配置\n\t}\n}",
"doc": ""
},
{
"name": "FindNodeHTTPPagesPoliciesRequest",
"code": "message FindNodeHTTPPagesPoliciesRequest {\n\tint64 nodeId = 1; // 节点ID\n}",
"doc": "查找节点的自定义页面策略"
},
{
"name": "FindNodeHTTPPagesPoliciesResponse",
"code": "message FindNodeHTTPPagesPoliciesResponse {\n\trepeated HTTPPagesPolicy httpPagesPolicies = 1; // 自定义页面策略列表\n\n\n\tmessage HTTPPagesPolicy {\n\t\tint64 nodeClusterId = 1; // 集群ID\n\t\tbytes httpPagesPolicyJSON = 2; // 自定义页面策略配置\n\t}\n}",
@@ -19338,6 +19337,11 @@
"code": "message FindNodeScheduleInfoResponse {\n\tScheduleInfo scheduleInfo = 1; // 调度信息\n\n\n\tmessage ScheduleInfo {\n\t\tstring offlineDay = 1; // 下线日期格式YYYYMMDD\n\t\tbool isBackupForCluster = 2; // 是否为集群备份节点\n\t\tbool isBackupForGroup = 3; // 是否为分组备份节点\n\t\trepeated string backupIPs = 4; // 备用IP\n\t\tbytes actionStatusJSON = 5; // 动作状态\n\t}\n}",
"doc": ""
},
{
"name": "FindNodeTOAConfigResponse",
"code": "message FindNodeTOAConfigResponse {\n\tbytes toaJSON = 1; // TOA配置\n}",
"doc": ""
},
{
"name": "FindNodeTasksRequest",
"code": "message FindNodeTasksRequest {\n\tint64 version = 1; // 上一次执行的版本\n}",
@@ -19348,11 +19352,6 @@
"code": "message FindNodeTasksResponse {\n\trepeated NodeTask nodeTasks = 1;\n}",
"doc": ""
},
{
"name": "FindNodeUAMPoliciesRequest",
"code": "message FindNodeUAMPoliciesRequest {\n\tint64 nodeId = 1; // 节点ID\n}",
"doc": "查找节点的UAM策略"
},
{
"name": "FindNodeUAMPoliciesResponse",
"code": "message FindNodeUAMPoliciesResponse {\n\trepeated UAMPolicy uamPolicies = 1; // UAM策略列表\n\n\n\tmessage UAMPolicy {\n\t\tint64 nodeClusterId = 1; // 集群ID\n\t\tbytes uamPolicyJSON = 2; // UAM策略配置\n\t}\n}",

View File

@@ -4,27 +4,26 @@ import (
"fmt"
"github.com/iwind/TeaGo/rands"
"net"
"runtime"
)
// 默认的TOA配置
// DefaultTOAConfig 默认的TOA配置
func DefaultTOAConfig() *TOAConfig {
return &TOAConfig{
IsOn: false,
Debug: false,
OptionType: 0xfe,
MinQueueId: 100,
MaxQueueId: 109,
AutoSetup: true,
}
}
// TOA相关配置
// TOAConfig TOA相关配置
type TOAConfig struct {
IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用
Debug bool `yaml:"debug" json:"debug"`
OptionType uint8 `yaml:"optionType" json:"optionType"`
MinQueueId uint8 `yaml:"minQueueId" json:"minQueueId"`
MaxQueueId uint8 `yaml:"maxQueueId" json:"maxQueueId"`
AutoSetup bool `yaml:"autoSetup" json:"autoSetup"`
MinLocalPort uint16 `yaml:"minLocalPort" json:"minLocalPort"` // 本地可使用的最小端口 TODO
MaxLocalPort uint16 `yaml:"maxLocalPort" json:"maxLocalPort"` // 本地可使用的最大端口 TODO
@@ -51,15 +50,10 @@ func (this *TOAConfig) Init() error {
this.minLocalPort = int(minPort)
this.maxLocalPort = int(maxPort)
// QueueId
if this.MinQueueId > this.MaxQueueId {
this.MinQueueId, this.MaxQueueId = this.MaxQueueId, this.MinQueueId
}
return nil
}
// Sock路径
// SockFile Sock路径
func (this *TOAConfig) SockFile() string {
if len(this.SockPath) == 0 {
return "/tmp/edge-toa.sock"
@@ -67,7 +61,7 @@ func (this *TOAConfig) SockFile() string {
return this.SockPath
}
// 获取随机端口
// RandLocalPort 获取随机端口
func (this *TOAConfig) RandLocalPort() uint16 {
listener, err := net.Listen("tcp", ":0")
if err != nil {
@@ -77,12 +71,12 @@ func (this *TOAConfig) RandLocalPort() uint16 {
return uint16(listener.Addr().(*net.TCPAddr).Port)
}
// 转换为参数的形式
// AsArgs 转换为参数的形式
func (this *TOAConfig) AsArgs() (args []string) {
args = append(args, "run")
args = append(args, "-option-type="+fmt.Sprintf("%d", this.OptionType))
args = append(args, "-min-queue-id="+fmt.Sprintf("%d", this.MinQueueId))
args = append(args, "-max-queue-id="+fmt.Sprintf("%d", this.MaxQueueId))
args = append(args, "-max-queue-id="+fmt.Sprintf("%d", this.MaxQueueId()))
if this.AutoSetup {
args = append(args, "-auto-setup")
}
@@ -91,3 +85,12 @@ func (this *TOAConfig) AsArgs() (args []string) {
}
return
}
// MaxQueueId 获取队列ID最大值
func (this *TOAConfig) MaxQueueId() uint8 {
var maxQueueId = int(this.MinQueueId) + runtime.NumCPU() - 1
if maxQueueId > 255 {
maxQueueId = 255
}
return uint8(maxQueueId)
}

File diff suppressed because it is too large Load Diff

View File

@@ -199,6 +199,9 @@ service NodeService {
// 复制动作设置到集群
rpc copyNodeActionsToNodeCluster(CopyNodeActionsToNodeClusterRequest) returns (RPCSuccess);
// 查找节点的TOA配置
rpc findNodeTOAConfig(FindNodeTOAConfigRequest) returns (FindNodeTOAConfigResponse);
}
// 创建节点
@@ -695,7 +698,6 @@ message UpdateNodeAPIConfigRequest {
// 查找节点的UAM策略
message FindNodeUAMPoliciesRequest {
int64 nodeId = 1; // 节点ID
}
message FindNodeUAMPoliciesResponse {
@@ -709,7 +711,6 @@ message FindNodeUAMPoliciesResponse {
// 查找节点的HTTP CC策略
message FindNodeHTTPCCPoliciesRequest {
int64 nodeId = 1; // 节点ID
}
message FindNodeHTTPCCPoliciesResponse {
@@ -723,7 +724,6 @@ message FindNodeHTTPCCPoliciesResponse {
// 查找节点的HTTP3策略
message FindNodeHTTP3PoliciesRequest {
int64 nodeId = 1; // 节点ID
}
message FindNodeHTTP3PoliciesResponse {
@@ -737,7 +737,6 @@ message FindNodeHTTP3PoliciesResponse {
// 查找节点的自定义页面策略
message FindNodeHTTPPagesPoliciesRequest {
int64 nodeId = 1; // 节点ID
}
message FindNodeHTTPPagesPoliciesResponse {
@@ -803,10 +802,18 @@ message FindAllNodeScheduleInfoWithNodeClusterIdResponse {
// 同步动作设置到分组
message CopyNodeActionsToNodeGroupRequest {
int64 nodeId = 1;
int64 nodeId = 1; // 节点ID
}
// 同步动作设置到集群
message CopyNodeActionsToNodeClusterRequest {
int64 nodeId = 1;
int64 nodeId = 1; // 节点ID
}
// 查找节点的TOA配置
message FindNodeTOAConfigRequest {
}
message FindNodeTOAConfigResponse {
bytes toaJSON = 1; // TOA配置
}