refactor(config): 移除 Transport.MaxIdleConnsPerHost 配置字段
简化连接池配置,仅保留 MaxConnsPerHost 作为总连接上限。 MaxConnsPerHost 已涵盖活跃和空闲连接,无需单独控制空闲连接数。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
5f60dc9ff7
commit
83fc6beba3
@ -283,7 +283,6 @@ performance:
|
||||
max_size: 268435456 # 256MB
|
||||
inactive: 60s
|
||||
transport:
|
||||
max_idle_conns_per_host: 100
|
||||
idle_conn_timeout: 90s
|
||||
max_conns_per_host: 500
|
||||
|
||||
@ -751,7 +750,6 @@ performance:
|
||||
max_entries: 50000 # 根据内存调整
|
||||
max_size: 268435456 # 256MB
|
||||
transport:
|
||||
max_idle_conns_per_host: 100
|
||||
idle_conn_timeout: 90s
|
||||
max_conns_per_host: 500 # 根据后端容量调整
|
||||
```
|
||||
|
||||
@ -1377,27 +1377,21 @@ type FileCacheConfig struct {
|
||||
// 配置代理后端连接的连接池参数。
|
||||
//
|
||||
// 注意事项:
|
||||
// - MaxIdleConnsPerHost 控制每个后端主机的空闲连接
|
||||
// - IdleConnTimeout 控制空闲连接的保持时间
|
||||
// - MaxConnsPerHost 限制每个后端主机的总连接数
|
||||
// - MaxConnsPerHost 限制每个后端主机的总连接数(含活跃和空闲)
|
||||
//
|
||||
// 使用示例:
|
||||
//
|
||||
// transport:
|
||||
// max_idle_conns_per_host: 10
|
||||
// idle_conn_timeout: 90s
|
||||
// max_conns_per_host: 100
|
||||
type TransportConfig struct {
|
||||
// MaxIdleConnsPerHost 每主机最大空闲连接
|
||||
// 单个后端主机的最大空闲连接数
|
||||
MaxIdleConnsPerHost int `yaml:"max_idle_conns_per_host"`
|
||||
|
||||
// IdleConnTimeout 空闲连接超时
|
||||
// 空闲连接的最大存活时间
|
||||
IdleConnTimeout time.Duration `yaml:"idle_conn_timeout"`
|
||||
|
||||
// MaxConnsPerHost 每主机最大连接数
|
||||
// 单个后端主机的总连接数上限
|
||||
// 单个后端主机的总连接数上限(包括活跃连接和空闲连接)
|
||||
MaxConnsPerHost int `yaml:"max_conns_per_host"`
|
||||
}
|
||||
|
||||
|
||||
@ -173,9 +173,8 @@ func DefaultConfig() *Config {
|
||||
Inactive: 20 * time.Second,
|
||||
},
|
||||
Transport: TransportConfig{
|
||||
MaxIdleConnsPerHost: 32,
|
||||
IdleConnTimeout: 90 * time.Second,
|
||||
MaxConnsPerHost: 0, // 0 表示不限制
|
||||
IdleConnTimeout: 90 * time.Second,
|
||||
MaxConnsPerHost: 0, // 0 表示不限制
|
||||
},
|
||||
},
|
||||
Monitoring: MonitoringConfig{
|
||||
@ -600,7 +599,6 @@ func GenerateConfigYAML(cfg *Config) ([]byte, error) {
|
||||
fmt.Fprintf(&buf, " max_size: %d # 内存上限(字节,%dMB)\n", cfg.Performance.FileCache.MaxSize, cfg.Performance.FileCache.MaxSize/1024/1024)
|
||||
fmt.Fprintf(&buf, " inactive: %ds # 未访问淘汰时间\n", int(cfg.Performance.FileCache.Inactive.Seconds()))
|
||||
buf.WriteString(" transport: # HTTP Transport 连接池\n")
|
||||
fmt.Fprintf(&buf, " max_idle_conns_per_host: %d # 每主机空闲连接\n", cfg.Performance.Transport.MaxIdleConnsPerHost)
|
||||
fmt.Fprintf(&buf, " idle_conn_timeout: %ds # 空闲超时\n", int(cfg.Performance.Transport.IdleConnTimeout.Seconds()))
|
||||
fmt.Fprintf(&buf, " max_conns_per_host: %d # 每主机最大连接(0 表示不限制)\n", cfg.Performance.Transport.MaxConnsPerHost)
|
||||
buf.WriteString("\n")
|
||||
|
||||
@ -121,9 +121,6 @@ func TestDefaultConfigPerformance(t *testing.T) {
|
||||
}
|
||||
|
||||
// 验证 Transport 默认值
|
||||
if cfg.Performance.Transport.MaxIdleConnsPerHost != 32 {
|
||||
t.Errorf("Transport.MaxIdleConnsPerHost 期望 32, 实际 %d", cfg.Performance.Transport.MaxIdleConnsPerHost)
|
||||
}
|
||||
if cfg.Performance.Transport.IdleConnTimeout != 90*time.Second {
|
||||
t.Errorf("Transport.IdleConnTimeout 期望 90s, 实际 %v", cfg.Performance.Transport.IdleConnTimeout)
|
||||
}
|
||||
|
||||
@ -1043,9 +1043,6 @@ func validateStream(s *StreamConfig) error {
|
||||
// - error: 验证失败时返回错误信息,成功返回 nil
|
||||
func validatePerformance(p *PerformanceConfig) error {
|
||||
// 检查 Transport 配置(可能导致性能问题)
|
||||
if p.Transport.MaxIdleConnsPerHost < 0 {
|
||||
return errors.New("transport.max_idle_conns_per_host 不能为负数")
|
||||
}
|
||||
if p.Transport.MaxConnsPerHost < 0 {
|
||||
return errors.New("transport.max_conns_per_host 不能为负数")
|
||||
}
|
||||
|
||||
@ -1048,8 +1048,7 @@ func TestValidatePerformance(t *testing.T) {
|
||||
name: "有效的 transport 配置(零值)",
|
||||
config: PerformanceConfig{
|
||||
Transport: TransportConfig{
|
||||
MaxIdleConnsPerHost: 0,
|
||||
MaxConnsPerHost: 0,
|
||||
MaxConnsPerHost: 0,
|
||||
},
|
||||
},
|
||||
wantErr: false,
|
||||
@ -1058,22 +1057,11 @@ func TestValidatePerformance(t *testing.T) {
|
||||
name: "有效的 transport 配置(正值)",
|
||||
config: PerformanceConfig{
|
||||
Transport: TransportConfig{
|
||||
MaxIdleConnsPerHost: 10,
|
||||
MaxConnsPerHost: 50,
|
||||
MaxConnsPerHost: 50,
|
||||
},
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "MaxIdleConnsPerHost 负数",
|
||||
config: PerformanceConfig{
|
||||
Transport: TransportConfig{
|
||||
MaxIdleConnsPerHost: -1,
|
||||
},
|
||||
},
|
||||
wantErr: true,
|
||||
errMsg: "transport.max_idle_conns_per_host 不能为负数",
|
||||
},
|
||||
{
|
||||
name: "MaxConnsPerHost 负数",
|
||||
config: PerformanceConfig{
|
||||
@ -1084,17 +1072,6 @@ func TestValidatePerformance(t *testing.T) {
|
||||
wantErr: true,
|
||||
errMsg: "transport.max_conns_per_host 不能为负数",
|
||||
},
|
||||
{
|
||||
name: "多个 transport 字段为负",
|
||||
config: PerformanceConfig{
|
||||
Transport: TransportConfig{
|
||||
MaxIdleConnsPerHost: -2,
|
||||
MaxConnsPerHost: -3,
|
||||
},
|
||||
},
|
||||
wantErr: true,
|
||||
errMsg: "transport.max_idle_conns_per_host 不能为负数",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user