// Package impl 提供CMS服务的实现层 // 负责初始化和管理各种外部服务的连接,包括数据库、缓存、etcd等 package impl import ( "git.apinb.com/bsm-apps/cms/internal/config" "git.apinb.com/bsm-sdk/core/cache/redis" "git.apinb.com/bsm-sdk/core/with" cache "github.com/patrickmn/go-cache" clientv3 "go.etcd.io/etcd/client/v3" "gorm.io/gorm" ) var ( // RedisService Redis缓存服务客户端 // 用于存储临时数据和缓存热点数据 RedisService *redis.RedisClient // EtcdService Etcd客户端 // 用于服务发现和配置管理 EtcdService *clientv3.Client // DBService 数据库服务连接 // 用于数据持久化存储 DBService *gorm.DB // MemoryService 内存缓存服务 // 用于存储频繁访问的数据,提供最快的访问速度 MemoryService *cache.Cache ) // NewImpl 初始化实现层 // 建立与各种外部服务的连接,包括内存缓存、Redis、数据库和Etcd // 这些连接将在整个服务生命周期中使用 func NewImpl() { // 初始化内存缓存服务,用于存储热点数据 MemoryService = with.Memory(nil) // 初始化Redis缓存服务,用于分布式缓存 RedisService = with.RedisCache(config.Spec.Cache) // 初始化数据库连接,用于数据持久化 DBService = with.Databases(config.Spec.Databases, nil) // 初始化Etcd客户端,用于服务发现和配置管理 EtcdService = with.Etcd(config.Spec.Etcd) }