Files
full/all/internal/impl/impl.go

43 lines
1.3 KiB
Go
Raw Normal View History

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