mirror of
https://github.com/TeaOSLab/EdgeCommon.git
synced 2025-11-04 21:50:26 +08:00
优化源站有专属域名情况下的算法
This commit is contained in:
@@ -65,6 +65,7 @@ func (this *ReverseProxyConfig) Init() error {
|
|||||||
|
|
||||||
// 将源站分组
|
// 将源站分组
|
||||||
this.schedulingGroupMap = map[string]*SchedulingGroup{}
|
this.schedulingGroupMap = map[string]*SchedulingGroup{}
|
||||||
|
var hasDomainGroups = false
|
||||||
for _, origin := range this.PrimaryOrigins {
|
for _, origin := range this.PrimaryOrigins {
|
||||||
if len(origin.Domains) == 0 {
|
if len(origin.Domains) == 0 {
|
||||||
group, ok := this.schedulingGroupMap[""]
|
group, ok := this.schedulingGroupMap[""]
|
||||||
@@ -77,6 +78,7 @@ func (this *ReverseProxyConfig) Init() error {
|
|||||||
}
|
}
|
||||||
group.PrimaryOrigins = append(group.PrimaryOrigins, origin)
|
group.PrimaryOrigins = append(group.PrimaryOrigins, origin)
|
||||||
} else {
|
} else {
|
||||||
|
hasDomainGroups = true
|
||||||
for _, domain := range origin.Domains {
|
for _, domain := range origin.Domains {
|
||||||
group, ok := this.schedulingGroupMap[domain]
|
group, ok := this.schedulingGroupMap[domain]
|
||||||
if !ok {
|
if !ok {
|
||||||
@@ -102,6 +104,7 @@ func (this *ReverseProxyConfig) Init() error {
|
|||||||
}
|
}
|
||||||
group.BackupOrigins = append(group.BackupOrigins, origin)
|
group.BackupOrigins = append(group.BackupOrigins, origin)
|
||||||
} else {
|
} else {
|
||||||
|
hasDomainGroups = true
|
||||||
for _, domain := range origin.Domains {
|
for _, domain := range origin.Domains {
|
||||||
group, ok := this.schedulingGroupMap[domain]
|
group, ok := this.schedulingGroupMap[domain]
|
||||||
if !ok {
|
if !ok {
|
||||||
@@ -116,6 +119,23 @@ func (this *ReverseProxyConfig) Init() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 再次分解
|
||||||
|
if hasDomainGroups {
|
||||||
|
defaultGroup, ok := this.schedulingGroupMap[""]
|
||||||
|
if ok {
|
||||||
|
delete(this.schedulingGroupMap, "")
|
||||||
|
|
||||||
|
for _, group := range this.schedulingGroupMap {
|
||||||
|
for _, origin := range defaultGroup.PrimaryOrigins {
|
||||||
|
group.PrimaryOrigins = append(group.PrimaryOrigins, origin)
|
||||||
|
}
|
||||||
|
for _, origin := range defaultGroup.BackupOrigins {
|
||||||
|
group.BackupOrigins = append(group.BackupOrigins, origin)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 初始化分组
|
// 初始化分组
|
||||||
for _, group := range this.schedulingGroupMap {
|
for _, group := range this.schedulingGroupMap {
|
||||||
err := group.Init()
|
err := group.Init()
|
||||||
|
|||||||
Reference in New Issue
Block a user