From 11956a0f83d78603c66d5741d98f321ae26058e1 Mon Sep 17 00:00:00 2001 From: xfy Date: Tue, 14 Apr 2026 15:56:29 +0800 Subject: [PATCH] =?UTF-8?q?refactor(resolver,variable):=20=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E6=9C=AA=E4=BD=BF=E7=94=A8=E7=9A=84=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=92=8C=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - resolver: 移除 StatsCollector 接口和 mockResolver 测试代码 - variable: 移除 Store 接口定义 Co-Authored-By: Claude Opus 4.6 --- internal/resolver/resolver_bench_test.go | 40 ------------------------ internal/resolver/stats.go | 29 ----------------- internal/variable/variable.go | 8 ----- 3 files changed, 77 deletions(-) diff --git a/internal/resolver/resolver_bench_test.go b/internal/resolver/resolver_bench_test.go index 278872f..6faa52d 100644 --- a/internal/resolver/resolver_bench_test.go +++ b/internal/resolver/resolver_bench_test.go @@ -14,46 +14,6 @@ import ( "rua.plus/lolly/internal/config" ) -// mockResolver 是一个模拟的 Resolver 实现,用于基准测试。 -// 它返回固定的 IP 地址,避免网络依赖,确保测试的稳定性和可重复性。 -type mockResolver struct { - ips []string - delay time.Duration -} - -// LookupHost 模拟解析主机名,返回固定的 IP 地址列表。 -func (m *mockResolver) LookupHost(ctx context.Context, host string) ([]string, error) { - if m.delay > 0 { - time.Sleep(m.delay) - } - return m.ips, nil -} - -// LookupHostWithCache 带缓存的解析实现。 -func (m *mockResolver) LookupHostWithCache(ctx context.Context, host string) ([]string, error) { - return m.LookupHost(ctx, host) -} - -// Refresh 刷新指定主机的缓存(模拟实现)。 -func (m *mockResolver) Refresh(host string) error { - return nil -} - -// Start 启动后台刷新协程(模拟实现)。 -func (m *mockResolver) Start() error { - return nil -} - -// Stop 停止解析器(模拟实现)。 -func (m *mockResolver) Stop() error { - return nil -} - -// Stats 返回统计信息(模拟实现)。 -func (m *mockResolver) Stats() Stats { - return Stats{} -} - // createTestResolver 创建一个用于基准测试的 DNSResolver 实例。 // 预填充缓存以模拟真实场景。 func createTestResolver() *DNSResolver { diff --git a/internal/resolver/stats.go b/internal/resolver/stats.go index c30bcb4..453dc07 100644 --- a/internal/resolver/stats.go +++ b/internal/resolver/stats.go @@ -22,35 +22,6 @@ import ( "time" ) -// StatsCollector 定义 DNS 解析器统计收集器的接口。 -// -// 该接口用于抽象统计数据的收集和查询操作,支持: -// - 记录缓存命中和未命中事件 -// - 记录解析错误 -// - 记录解析延迟 -// - 获取汇总统计数据 -// -// 实现要求: -// - 所有方法必须是并发安全的 -// - 统计数据的更新应使用原子操作 -// - GetStats 返回的数据应反映当前时刻的快照 -// -// 使用场景: -// -// 通常由 DNSResolver 实现此接口,供监控系统或管理接口调用。 -type StatsCollector interface { - // RecordHit 记录缓存命中 - RecordHit() - // RecordMiss 记录缓存未命中 - RecordMiss() - // RecordError 记录解析错误 - RecordError() - // RecordLatency 记录解析延迟 - RecordLatency(latency time.Duration) - // GetStats 获取当前统计 - GetStats() Stats -} - // ResetStats 重置所有统计信息为初始值。 // // 将缓存命中次数、缓存未命中次数、解析错误次数、 diff --git a/internal/variable/variable.go b/internal/variable/variable.go index 8118f91..42c9d12 100644 --- a/internal/variable/variable.go +++ b/internal/variable/variable.go @@ -26,14 +26,6 @@ import ( "github.com/valyala/fasthttp" ) -// Store 变量存储接口 -type Store interface { - // Get 获取变量值 - Get(name string) (string, bool) - // Set 设置变量值(用于自定义变量) - Set(name string, value string) -} - // BuiltinVariable 内置变量定义 type BuiltinVariable struct { Getter func(ctx *fasthttp.RequestCtx) string