【源码阅读】osproxy对象存储分布式代理(1)
package main
import (
"github.com/qinguoyi/osproxy/api"
"github.com/qinguoyi/osproxy/app"
"github.com/qinguoyi/osproxy/app/pkg/base"
"github.com/qinguoyi/osproxy/app/pkg/storage"
"github.com/qinguoyi/osproxy/bootstrap"
"github.com/qinguoyi/osproxy/bootstrap/plugins"
)
func main() {
// 初始化底层依赖(mysql, redis...),并初始化日志logger对象
lgConfig := bootstrap.NewConfig("conf/config.yaml")
lgLogger := bootstrap.NewLogger()
// 检测底层插件的情况,并输出相应信息后关闭。
plugins.NewPlugins()
defer plugins.ClosePlugins()
// 初始化雪花算法生成分布式ID
base.InitSnowFlake()
// 初始化存储
storage.InitStorage(lgConfig)
// 初始化路由和服务
engine := api.NewRouter(lgConfig, lgLogger)
server := app.NewHttpServer(lgConfig, engine)
// 初始化应用
application := app.NewApp(lgConfig, lgLogger.Logger, server)
// 应用执行
application.RunServer()
}