mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-05 01:20:25 +08:00
边缘节点支持设置多个缓存目录
This commit is contained in:
@@ -1146,6 +1146,7 @@ func (this *NodeDAO) ComposeNodeConfig(tx *dbs.Tx, nodeId int64, cacheMap *utils
|
|||||||
}
|
}
|
||||||
|
|
||||||
config.CacheDiskDir = node.CacheDiskDir
|
config.CacheDiskDir = node.CacheDiskDir
|
||||||
|
config.CacheDiskSubDirs = node.DecodeCacheDiskSubDirs()
|
||||||
|
|
||||||
// TOA
|
// TOA
|
||||||
toaConfig, err := SharedNodeClusterDAO.FindClusterTOAConfig(tx, primaryClusterId, cacheMap)
|
toaConfig, err := SharedNodeClusterDAO.FindClusterTOAConfig(tx, primaryClusterId, cacheMap)
|
||||||
@@ -1621,7 +1622,7 @@ func (this *NodeDAO) UpdateNodeSystem(tx *dbs.Tx, nodeId int64, maxCPU int32) er
|
|||||||
}
|
}
|
||||||
|
|
||||||
// UpdateNodeCache 设置缓存相关
|
// UpdateNodeCache 设置缓存相关
|
||||||
func (this *NodeDAO) UpdateNodeCache(tx *dbs.Tx, nodeId int64, maxCacheDiskCapacityJSON []byte, maxCacheMemoryCapacityJSON []byte, cacheDiskDir string) error {
|
func (this *NodeDAO) UpdateNodeCache(tx *dbs.Tx, nodeId int64, maxCacheDiskCapacityJSON []byte, maxCacheMemoryCapacityJSON []byte, cacheDiskDir string, cacheDiskSubDirs []*serverconfigs.CacheDir) error {
|
||||||
if nodeId <= 0 {
|
if nodeId <= 0 {
|
||||||
return errors.New("invalid nodeId")
|
return errors.New("invalid nodeId")
|
||||||
}
|
}
|
||||||
@@ -1634,7 +1635,17 @@ func (this *NodeDAO) UpdateNodeCache(tx *dbs.Tx, nodeId int64, maxCacheDiskCapac
|
|||||||
op.MaxCacheMemoryCapacity = maxCacheMemoryCapacityJSON
|
op.MaxCacheMemoryCapacity = maxCacheMemoryCapacityJSON
|
||||||
}
|
}
|
||||||
op.CacheDiskDir = cacheDiskDir
|
op.CacheDiskDir = cacheDiskDir
|
||||||
err := this.Save(tx, op)
|
|
||||||
|
if cacheDiskSubDirs == nil {
|
||||||
|
cacheDiskSubDirs = []*serverconfigs.CacheDir{}
|
||||||
|
}
|
||||||
|
cacheDiskSubDirsJSON, err := json.Marshal(cacheDiskSubDirs)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
op.CacheDiskSubDirs = cacheDiskSubDirsJSON
|
||||||
|
|
||||||
|
err = this.Save(tx, op)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ type Node struct {
|
|||||||
DnsRoutes dbs.JSON `field:"dnsRoutes"` // DNS线路设置
|
DnsRoutes dbs.JSON `field:"dnsRoutes"` // DNS线路设置
|
||||||
MaxCacheDiskCapacity dbs.JSON `field:"maxCacheDiskCapacity"` // 硬盘缓存容量
|
MaxCacheDiskCapacity dbs.JSON `field:"maxCacheDiskCapacity"` // 硬盘缓存容量
|
||||||
MaxCacheMemoryCapacity dbs.JSON `field:"maxCacheMemoryCapacity"` // 内存缓存容量
|
MaxCacheMemoryCapacity dbs.JSON `field:"maxCacheMemoryCapacity"` // 内存缓存容量
|
||||||
CacheDiskDir string `field:"cacheDiskDir"` // 缓存目录
|
CacheDiskDir string `field:"cacheDiskDir"` // 主缓存目录
|
||||||
|
CacheDiskSubDirs dbs.JSON `field:"cacheDiskSubDirs"` // 其他缓存目录
|
||||||
DnsResolver dbs.JSON `field:"dnsResolver"` // DNS解析器
|
DnsResolver dbs.JSON `field:"dnsResolver"` // DNS解析器
|
||||||
EnableIPLists bool `field:"enableIPLists"` // 启用IP名单
|
EnableIPLists bool `field:"enableIPLists"` // 启用IP名单
|
||||||
}
|
}
|
||||||
@@ -78,7 +79,8 @@ type NodeOperator struct {
|
|||||||
DnsRoutes any // DNS线路设置
|
DnsRoutes any // DNS线路设置
|
||||||
MaxCacheDiskCapacity any // 硬盘缓存容量
|
MaxCacheDiskCapacity any // 硬盘缓存容量
|
||||||
MaxCacheMemoryCapacity any // 内存缓存容量
|
MaxCacheMemoryCapacity any // 内存缓存容量
|
||||||
CacheDiskDir any // 缓存目录
|
CacheDiskDir any // 主缓存目录
|
||||||
|
CacheDiskSubDirs any // 其他缓存目录
|
||||||
DnsResolver any // DNS解析器
|
DnsResolver any // DNS解析器
|
||||||
EnableIPLists any // 启用IP名单
|
EnableIPLists any // 启用IP名单
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package models
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"github.com/TeaOSLab/EdgeAPI/internal/remotelogs"
|
||||||
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
||||||
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/ddosconfigs"
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/ddosconfigs"
|
||||||
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
|
||||||
"sort"
|
"sort"
|
||||||
@@ -181,3 +183,16 @@ func (this *Node) DecodeLnAddrs() []string {
|
|||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *Node) DecodeCacheDiskSubDirs() []*serverconfigs.CacheDir {
|
||||||
|
if IsNull(this.CacheDiskSubDirs) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = []*serverconfigs.CacheDir{}
|
||||||
|
err := json.Unmarshal(this.CacheDiskSubDirs, &result)
|
||||||
|
if err != nil {
|
||||||
|
remotelogs.Error("Node.DecodeCacheDiskSubDirs", err.Error())
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|||||||
@@ -673,6 +673,7 @@ func (this *NodeService) FindEnabledNode(ctx context.Context, req *pb.FindEnable
|
|||||||
MaxCacheDiskCapacity: pbMaxCacheDiskCapacity,
|
MaxCacheDiskCapacity: pbMaxCacheDiskCapacity,
|
||||||
MaxCacheMemoryCapacity: pbMaxCacheMemoryCapacity,
|
MaxCacheMemoryCapacity: pbMaxCacheMemoryCapacity,
|
||||||
CacheDiskDir: node.CacheDiskDir,
|
CacheDiskDir: node.CacheDiskDir,
|
||||||
|
CacheDiskSubDirsJSON: node.CacheDiskSubDirs,
|
||||||
Level: int32(node.Level),
|
Level: int32(node.Level),
|
||||||
LnAddrs: node.DecodeLnAddrs(),
|
LnAddrs: node.DecodeLnAddrs(),
|
||||||
DnsRoutes: pbRoutes,
|
DnsRoutes: pbRoutes,
|
||||||
@@ -1708,7 +1709,16 @@ func (this *NodeService) UpdateNodeCache(ctx context.Context, req *pb.UpdateNode
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = models.SharedNodeDAO.UpdateNodeCache(tx, req.NodeId, maxCacheDiskCapacityJSON, maxCacheMemoryCapacityJSON, req.CacheDiskDir)
|
// cache sub dirs
|
||||||
|
var cacheSubDirs = []*serverconfigs.CacheDir{}
|
||||||
|
if len(req.CacheDiskSubDirsJSON) > 0 {
|
||||||
|
err = json.Unmarshal(req.CacheDiskSubDirsJSON, &cacheSubDirs)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.New("decode 'cacheDiskSubDirsJSON' failed: " + err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = models.SharedNodeDAO.UpdateNodeCache(tx, req.NodeId, maxCacheDiskCapacityJSON, maxCacheMemoryCapacityJSON, req.CacheDiskDir, cacheSubDirs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user