mirror of
https://github.com/zhufuyi/sponge.git
synced 2025-10-05 08:46:57 +08:00
optimised code
This commit is contained in:
@@ -301,7 +301,7 @@ message ListUserExampleByIDsReply {
|
|||||||
|
|
||||||
message ListUserExampleByLastIDRequest {
|
message ListUserExampleByLastIDRequest {
|
||||||
uint64 lastID = 1 [(tagger.tags) = "form:\"lastID\""]; // last id
|
uint64 lastID = 1 [(tagger.tags) = "form:\"lastID\""]; // last id
|
||||||
uint32 limit = 2 [(tagger.tags) = "form:\"limit\""]; // page size
|
uint32 limit = 2 [(validate.rules).uint32.gt = 0, (tagger.tags) = "form:\"limit\""]; // page size
|
||||||
string sort = 3 [(tagger.tags) = "form:\"sort\""]; // sort by column name of table, default is -id, the - sign indicates descending order.
|
string sort = 3 [(tagger.tags) = "form:\"sort\""]; // sort by column name of table, default is -id, the - sign indicates descending order.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3,10 +3,10 @@ package service
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/cmd/protoc-gen-go-rpc-tmpl/internal/parse"
|
"github.com/zhufuyi/sponge/cmd/protoc-gen-go-rpc-tmpl/internal/parse"
|
||||||
"github.com/zhufuyi/sponge/pkg/gofile"
|
|
||||||
|
|
||||||
"google.golang.org/protobuf/compiler/protogen"
|
"google.golang.org/protobuf/compiler/protogen"
|
||||||
)
|
)
|
||||||
@@ -80,7 +80,7 @@ func (f *errCodeFields) execute() []byte {
|
|||||||
|
|
||||||
func getProtoFilename(filenamePrefix string) string {
|
func getProtoFilename(filenamePrefix string) string {
|
||||||
filenamePrefix = strings.ReplaceAll(filenamePrefix, ".proto", "")
|
filenamePrefix = strings.ReplaceAll(filenamePrefix, ".proto", "")
|
||||||
filenamePrefix = strings.ReplaceAll(filenamePrefix, gofile.GetPathDelimiter(), "/")
|
filenamePrefix = strings.ReplaceAll(filenamePrefix, getPathDelimiter(), "/")
|
||||||
ss := strings.Split(filenamePrefix, "/")
|
ss := strings.Split(filenamePrefix, "/")
|
||||||
|
|
||||||
if len(ss) == 0 {
|
if len(ss) == 0 {
|
||||||
@@ -109,3 +109,12 @@ func handleSplitLineMark(data []byte) []byte {
|
|||||||
}
|
}
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getPathDelimiter() string {
|
||||||
|
delimiter := "/"
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
delimiter = "\\"
|
||||||
|
}
|
||||||
|
|
||||||
|
return delimiter
|
||||||
|
}
|
||||||
|
@@ -11,8 +11,8 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/tracer"
|
"github.com/zhufuyi/sponge/pkg/tracer"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterClose register for released resources
|
// Close releasing resources after service exit
|
||||||
func RegisterClose(servers []app.IServer) []app.Close {
|
func Close(servers []app.IServer) []app.Close {
|
||||||
var closes []app.Close
|
var closes []app.Close
|
||||||
|
|
||||||
// close server
|
// close server
|
@@ -16,14 +16,14 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterServers register for the app service
|
// CreateServices create grpc or http service
|
||||||
func RegisterServers() []app.IServer {
|
func CreateServices() []app.IServer {
|
||||||
var cfg = config.Get()
|
var cfg = config.Get()
|
||||||
var servers []app.IServer
|
var servers []app.IServer
|
||||||
|
|
||||||
// creating grpc service
|
// creating grpc service
|
||||||
grpcAddr := ":" + strconv.Itoa(cfg.Grpc.Port)
|
grpcAddr := ":" + strconv.Itoa(cfg.Grpc.Port)
|
||||||
grpcRegistry, grpcInstance := registryService("grpc", cfg.App.Host, cfg.Grpc.Port)
|
grpcRegistry, grpcInstance := registerService("grpc", cfg.App.Host, cfg.Grpc.Port)
|
||||||
grpcServer := server.NewGRPCServer(grpcAddr,
|
grpcServer := server.NewGRPCServer(grpcAddr,
|
||||||
server.WithGrpcReadTimeout(time.Duration(cfg.Grpc.ReadTimeout)*time.Second),
|
server.WithGrpcReadTimeout(time.Duration(cfg.Grpc.ReadTimeout)*time.Second),
|
||||||
server.WithGrpcWriteTimeout(time.Duration(cfg.Grpc.WriteTimeout)*time.Second),
|
server.WithGrpcWriteTimeout(time.Duration(cfg.Grpc.WriteTimeout)*time.Second),
|
||||||
@@ -34,7 +34,7 @@ func RegisterServers() []app.IServer {
|
|||||||
return servers
|
return servers
|
||||||
}
|
}
|
||||||
|
|
||||||
func registryService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
func registerService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
||||||
var (
|
var (
|
||||||
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
||||||
cfg = config.Get()
|
cfg = config.Get()
|
@@ -12,6 +12,7 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/internal/config"
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
"github.com/zhufuyi/sponge/internal/model"
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
|
|
||||||
|
"github.com/zhufuyi/sponge/pkg/conf"
|
||||||
"github.com/zhufuyi/sponge/pkg/logger"
|
"github.com/zhufuyi/sponge/pkg/logger"
|
||||||
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
||||||
"github.com/zhufuyi/sponge/pkg/stat"
|
"github.com/zhufuyi/sponge/pkg/stat"
|
||||||
@@ -26,8 +27,8 @@ var (
|
|||||||
enableConfigCenter bool
|
enableConfigCenter bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config initial app configuration
|
// InitApp initial app configuration
|
||||||
func Config() {
|
func InitApp() {
|
||||||
initConfig()
|
initConfig()
|
||||||
cfg := config.Get()
|
cfg := config.Get()
|
||||||
|
|
||||||
@@ -40,9 +41,12 @@ func Config() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
logger.Debug(config.Show())
|
||||||
|
logger.Info("init logger succeeded")
|
||||||
|
|
||||||
// initializing database
|
// initializing database
|
||||||
model.InitMysql()
|
model.InitMysql()
|
||||||
|
logger.Info("init mysql succeeded")
|
||||||
model.InitCache(cfg.App.CacheType)
|
model.InitCache(cfg.App.CacheType)
|
||||||
|
|
||||||
// initializing tracing
|
// initializing tracing
|
||||||
@@ -55,6 +59,7 @@ func Config() {
|
|||||||
strconv.Itoa(cfg.Jaeger.AgentPort),
|
strconv.Itoa(cfg.Jaeger.AgentPort),
|
||||||
cfg.App.TracingSamplingRate,
|
cfg.App.TracingSamplingRate,
|
||||||
)
|
)
|
||||||
|
logger.Info("init tracer succeeded")
|
||||||
}
|
}
|
||||||
|
|
||||||
// initializing the print system and process resources
|
// initializing the print system and process resources
|
||||||
@@ -63,6 +68,7 @@ func Config() {
|
|||||||
stat.WithLog(logger.Get()),
|
stat.WithLog(logger.Get()),
|
||||||
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
||||||
)
|
)
|
||||||
|
logger.Info("init statistics succeeded")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,10 +92,14 @@ func initConfig() {
|
|||||||
appConfig := &config.Config{}
|
appConfig := &config.Config{}
|
||||||
params := &nacoscli.Params{}
|
params := &nacoscli.Params{}
|
||||||
_ = copier.Copy(params, &nacosConfig.Nacos)
|
_ = copier.Copy(params, &nacosConfig.Nacos)
|
||||||
err = nacoscli.Init(appConfig, params)
|
format, data, err := nacoscli.GetConfig(params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
||||||
}
|
}
|
||||||
|
err = conf.ParseConfigData(data, format, appConfig)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("parse configuration data err, %v", err))
|
||||||
|
}
|
||||||
if appConfig.App.Name == "" {
|
if appConfig.App.Name == "" {
|
||||||
panic("read the config from center error, config data is empty")
|
panic("read the config from center error, config data is empty")
|
||||||
}
|
}
|
||||||
@@ -108,5 +118,4 @@ func initConfig() {
|
|||||||
if version != "" {
|
if version != "" {
|
||||||
config.Get().App.Version = version
|
config.Get().App.Version = version
|
||||||
}
|
}
|
||||||
//fmt.Println(config.Show())
|
|
||||||
}
|
}
|
||||||
|
@@ -8,10 +8,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
initial.Config()
|
initial.InitApp()
|
||||||
servers := initial.RegisterServers()
|
services := initial.CreateServices()
|
||||||
closes := initial.RegisterClose(servers)
|
closes := initial.Close(services)
|
||||||
|
|
||||||
a := app.New(servers, closes)
|
a := app.New(services, closes)
|
||||||
a.Run()
|
a.Run()
|
||||||
}
|
}
|
||||||
|
@@ -11,8 +11,8 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/tracer"
|
"github.com/zhufuyi/sponge/pkg/tracer"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterClose register for released resources
|
// Close releasing resources after service exit
|
||||||
func RegisterClose(servers []app.IServer) []app.Close {
|
func Close(servers []app.IServer) []app.Close {
|
||||||
var closes []app.Close
|
var closes []app.Close
|
||||||
|
|
||||||
// close server
|
// close server
|
@@ -16,14 +16,14 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterServers register for the app service
|
// CreateServices create grpc or http service
|
||||||
func RegisterServers() []app.IServer {
|
func CreateServices() []app.IServer {
|
||||||
var cfg = config.Get()
|
var cfg = config.Get()
|
||||||
var servers []app.IServer
|
var servers []app.IServer
|
||||||
|
|
||||||
// creating http service
|
// creating http service
|
||||||
httpAddr := ":" + strconv.Itoa(cfg.HTTP.Port)
|
httpAddr := ":" + strconv.Itoa(cfg.HTTP.Port)
|
||||||
httpRegistry, httpInstance := registryService("http", cfg.App.Host, cfg.HTTP.Port)
|
httpRegistry, httpInstance := registerService("http", cfg.App.Host, cfg.HTTP.Port)
|
||||||
httpServer := server.NewHTTPServer_pbExample(httpAddr,
|
httpServer := server.NewHTTPServer_pbExample(httpAddr,
|
||||||
server.WithHTTPReadTimeout(time.Second*time.Duration(cfg.HTTP.ReadTimeout)),
|
server.WithHTTPReadTimeout(time.Second*time.Duration(cfg.HTTP.ReadTimeout)),
|
||||||
server.WithHTTPWriteTimeout(time.Second*time.Duration(cfg.HTTP.WriteTimeout)),
|
server.WithHTTPWriteTimeout(time.Second*time.Duration(cfg.HTTP.WriteTimeout)),
|
||||||
@@ -35,7 +35,7 @@ func RegisterServers() []app.IServer {
|
|||||||
return servers
|
return servers
|
||||||
}
|
}
|
||||||
|
|
||||||
func registryService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
func registerService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
||||||
var (
|
var (
|
||||||
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
||||||
cfg = config.Get()
|
cfg = config.Get()
|
@@ -13,6 +13,7 @@ import (
|
|||||||
|
|
||||||
//"github.com/zhufuyi/sponge/internal/rpcclient"
|
//"github.com/zhufuyi/sponge/internal/rpcclient"
|
||||||
|
|
||||||
|
"github.com/zhufuyi/sponge/pkg/conf"
|
||||||
"github.com/zhufuyi/sponge/pkg/logger"
|
"github.com/zhufuyi/sponge/pkg/logger"
|
||||||
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
||||||
"github.com/zhufuyi/sponge/pkg/stat"
|
"github.com/zhufuyi/sponge/pkg/stat"
|
||||||
@@ -27,8 +28,8 @@ var (
|
|||||||
enableConfigCenter bool
|
enableConfigCenter bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config initial app configuration
|
// InitApp initial app configuration
|
||||||
func Config() {
|
func InitApp() {
|
||||||
initConfig()
|
initConfig()
|
||||||
cfg := config.Get()
|
cfg := config.Get()
|
||||||
|
|
||||||
@@ -41,6 +42,8 @@ func Config() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
logger.Debug(config.Show())
|
||||||
|
logger.Info("init logger succeeded")
|
||||||
|
|
||||||
// initializing tracing
|
// initializing tracing
|
||||||
if cfg.App.EnableTrace {
|
if cfg.App.EnableTrace {
|
||||||
@@ -52,6 +55,7 @@ func Config() {
|
|||||||
strconv.Itoa(cfg.Jaeger.AgentPort),
|
strconv.Itoa(cfg.Jaeger.AgentPort),
|
||||||
cfg.App.TracingSamplingRate,
|
cfg.App.TracingSamplingRate,
|
||||||
)
|
)
|
||||||
|
logger.Info("init tracer succeeded")
|
||||||
}
|
}
|
||||||
|
|
||||||
// initializing the rpc server connection
|
// initializing the rpc server connection
|
||||||
@@ -64,6 +68,7 @@ func Config() {
|
|||||||
stat.WithLog(logger.Get()),
|
stat.WithLog(logger.Get()),
|
||||||
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
||||||
)
|
)
|
||||||
|
logger.Info("init statistics succeeded")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,10 +92,14 @@ func initConfig() {
|
|||||||
appConfig := &config.Config{}
|
appConfig := &config.Config{}
|
||||||
params := &nacoscli.Params{}
|
params := &nacoscli.Params{}
|
||||||
_ = copier.Copy(params, &nacosConfig.Nacos)
|
_ = copier.Copy(params, &nacosConfig.Nacos)
|
||||||
err = nacoscli.Init(appConfig, params)
|
format, data, err := nacoscli.GetConfig(params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
||||||
}
|
}
|
||||||
|
err = conf.ParseConfigData(data, format, appConfig)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("parse configuration data err, %v", err))
|
||||||
|
}
|
||||||
if appConfig.App.Name == "" {
|
if appConfig.App.Name == "" {
|
||||||
panic("read the config from center error, config data is empty")
|
panic("read the config from center error, config data is empty")
|
||||||
}
|
}
|
||||||
@@ -109,5 +118,4 @@ func initConfig() {
|
|||||||
if version != "" {
|
if version != "" {
|
||||||
config.Get().App.Version = version
|
config.Get().App.Version = version
|
||||||
}
|
}
|
||||||
//fmt.Println(config.Show())
|
|
||||||
}
|
}
|
||||||
|
@@ -8,10 +8,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
initial.Config()
|
initial.InitApp()
|
||||||
servers := initial.RegisterServers()
|
services := initial.CreateServices()
|
||||||
closes := initial.RegisterClose(servers)
|
closes := initial.Close(services)
|
||||||
|
|
||||||
a := app.New(servers, closes)
|
a := app.New(services, closes)
|
||||||
a.Run()
|
a.Run()
|
||||||
}
|
}
|
||||||
|
@@ -11,8 +11,8 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/tracer"
|
"github.com/zhufuyi/sponge/pkg/tracer"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterClose register for released resources
|
// Close releasing resources after service exit
|
||||||
func RegisterClose(servers []app.IServer) []app.Close {
|
func Close(servers []app.IServer) []app.Close {
|
||||||
var closes []app.Close
|
var closes []app.Close
|
||||||
|
|
||||||
// close server
|
// close server
|
@@ -16,14 +16,14 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterServers register for the app service
|
// CreateServices create grpc or http service
|
||||||
func RegisterServers() []app.IServer {
|
func CreateServices() []app.IServer {
|
||||||
var cfg = config.Get()
|
var cfg = config.Get()
|
||||||
var servers []app.IServer
|
var servers []app.IServer
|
||||||
|
|
||||||
// creating grpc service
|
// creating grpc service
|
||||||
grpcAddr := ":" + strconv.Itoa(cfg.Grpc.Port)
|
grpcAddr := ":" + strconv.Itoa(cfg.Grpc.Port)
|
||||||
grpcRegistry, grpcInstance := registryService("grpc", cfg.App.Host, cfg.Grpc.Port)
|
grpcRegistry, grpcInstance := registerService("grpc", cfg.App.Host, cfg.Grpc.Port)
|
||||||
grpcServer := server.NewGRPCServer(grpcAddr,
|
grpcServer := server.NewGRPCServer(grpcAddr,
|
||||||
server.WithGrpcReadTimeout(time.Duration(cfg.Grpc.ReadTimeout)*time.Second),
|
server.WithGrpcReadTimeout(time.Duration(cfg.Grpc.ReadTimeout)*time.Second),
|
||||||
server.WithGrpcWriteTimeout(time.Duration(cfg.Grpc.WriteTimeout)*time.Second),
|
server.WithGrpcWriteTimeout(time.Duration(cfg.Grpc.WriteTimeout)*time.Second),
|
||||||
@@ -34,7 +34,7 @@ func RegisterServers() []app.IServer {
|
|||||||
return servers
|
return servers
|
||||||
}
|
}
|
||||||
|
|
||||||
func registryService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
func registerService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
||||||
var (
|
var (
|
||||||
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
||||||
cfg = config.Get()
|
cfg = config.Get()
|
@@ -13,6 +13,7 @@ import (
|
|||||||
|
|
||||||
//"github.com/zhufuyi/sponge/internal/model"
|
//"github.com/zhufuyi/sponge/internal/model"
|
||||||
|
|
||||||
|
"github.com/zhufuyi/sponge/pkg/conf"
|
||||||
"github.com/zhufuyi/sponge/pkg/logger"
|
"github.com/zhufuyi/sponge/pkg/logger"
|
||||||
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
||||||
"github.com/zhufuyi/sponge/pkg/stat"
|
"github.com/zhufuyi/sponge/pkg/stat"
|
||||||
@@ -27,8 +28,8 @@ var (
|
|||||||
enableConfigCenter bool
|
enableConfigCenter bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config initial app configuration
|
// InitApp initial app configuration
|
||||||
func Config() {
|
func InitApp() {
|
||||||
initConfig()
|
initConfig()
|
||||||
cfg := config.Get()
|
cfg := config.Get()
|
||||||
|
|
||||||
@@ -41,9 +42,12 @@ func Config() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
logger.Debug(config.Show())
|
||||||
|
logger.Info("init logger succeeded")
|
||||||
|
|
||||||
// initializing database
|
// initializing database
|
||||||
//model.InitMysql()
|
//model.InitMysql()
|
||||||
|
//logger.Info("init mysql succeeded")
|
||||||
//model.InitCache(cfg.App.CacheType)
|
//model.InitCache(cfg.App.CacheType)
|
||||||
|
|
||||||
// initializing tracing
|
// initializing tracing
|
||||||
@@ -56,6 +60,7 @@ func Config() {
|
|||||||
strconv.Itoa(cfg.Jaeger.AgentPort),
|
strconv.Itoa(cfg.Jaeger.AgentPort),
|
||||||
cfg.App.TracingSamplingRate,
|
cfg.App.TracingSamplingRate,
|
||||||
)
|
)
|
||||||
|
logger.Info("init tracer succeeded")
|
||||||
}
|
}
|
||||||
|
|
||||||
// initializing the print system and process resources
|
// initializing the print system and process resources
|
||||||
@@ -64,6 +69,7 @@ func Config() {
|
|||||||
stat.WithLog(logger.Get()),
|
stat.WithLog(logger.Get()),
|
||||||
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
||||||
)
|
)
|
||||||
|
logger.Info("init statistics succeeded")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,10 +93,14 @@ func initConfig() {
|
|||||||
appConfig := &config.Config{}
|
appConfig := &config.Config{}
|
||||||
params := &nacoscli.Params{}
|
params := &nacoscli.Params{}
|
||||||
_ = copier.Copy(params, &nacosConfig.Nacos)
|
_ = copier.Copy(params, &nacosConfig.Nacos)
|
||||||
err = nacoscli.Init(appConfig, params)
|
format, data, err := nacoscli.GetConfig(params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
||||||
}
|
}
|
||||||
|
err = conf.ParseConfigData(data, format, appConfig)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("parse configuration data err, %v", err))
|
||||||
|
}
|
||||||
if appConfig.App.Name == "" {
|
if appConfig.App.Name == "" {
|
||||||
panic("read the config from center error, config data is empty")
|
panic("read the config from center error, config data is empty")
|
||||||
}
|
}
|
||||||
@@ -109,5 +119,4 @@ func initConfig() {
|
|||||||
if version != "" {
|
if version != "" {
|
||||||
config.Get().App.Version = version
|
config.Get().App.Version = version
|
||||||
}
|
}
|
||||||
//fmt.Println(config.Show())
|
|
||||||
}
|
}
|
||||||
|
@@ -8,10 +8,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
initial.Config()
|
initial.InitApp()
|
||||||
servers := initial.RegisterServers()
|
services := initial.CreateServices()
|
||||||
closes := initial.RegisterClose(servers)
|
closes := initial.Close(services)
|
||||||
|
|
||||||
a := app.New(servers, closes)
|
a := app.New(services, closes)
|
||||||
a.Run()
|
a.Run()
|
||||||
}
|
}
|
||||||
|
@@ -11,8 +11,8 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/tracer"
|
"github.com/zhufuyi/sponge/pkg/tracer"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterClose register for released resources
|
// Close releasing resources after service exit
|
||||||
func RegisterClose(servers []app.IServer) []app.Close {
|
func Close(servers []app.IServer) []app.Close {
|
||||||
var closes []app.Close
|
var closes []app.Close
|
||||||
|
|
||||||
// close server
|
// close server
|
@@ -16,14 +16,14 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterServers register for the app service
|
// CreateServices create grpc or http service
|
||||||
func RegisterServers() []app.IServer {
|
func CreateServices() []app.IServer {
|
||||||
var cfg = config.Get()
|
var cfg = config.Get()
|
||||||
var servers []app.IServer
|
var servers []app.IServer
|
||||||
|
|
||||||
// creating http service
|
// creating http service
|
||||||
httpAddr := ":" + strconv.Itoa(cfg.HTTP.Port)
|
httpAddr := ":" + strconv.Itoa(cfg.HTTP.Port)
|
||||||
httpRegistry, httpInstance := registryService("http", cfg.App.Host, cfg.HTTP.Port)
|
httpRegistry, httpInstance := registerService("http", cfg.App.Host, cfg.HTTP.Port)
|
||||||
httpServer := server.NewHTTPServer(httpAddr,
|
httpServer := server.NewHTTPServer(httpAddr,
|
||||||
server.WithHTTPReadTimeout(time.Second*time.Duration(cfg.HTTP.ReadTimeout)),
|
server.WithHTTPReadTimeout(time.Second*time.Duration(cfg.HTTP.ReadTimeout)),
|
||||||
server.WithHTTPWriteTimeout(time.Second*time.Duration(cfg.HTTP.WriteTimeout)),
|
server.WithHTTPWriteTimeout(time.Second*time.Duration(cfg.HTTP.WriteTimeout)),
|
||||||
@@ -35,7 +35,7 @@ func RegisterServers() []app.IServer {
|
|||||||
return servers
|
return servers
|
||||||
}
|
}
|
||||||
|
|
||||||
func registryService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
func registerService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
||||||
var (
|
var (
|
||||||
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
||||||
cfg = config.Get()
|
cfg = config.Get()
|
@@ -6,6 +6,7 @@ package initial
|
|||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/zhufuyi/sponge/pkg/conf"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/configs"
|
"github.com/zhufuyi/sponge/configs"
|
||||||
@@ -26,8 +27,8 @@ var (
|
|||||||
enableConfigCenter bool
|
enableConfigCenter bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config initial app configuration
|
// InitApp initial app configuration
|
||||||
func Config() {
|
func InitApp() {
|
||||||
initConfig()
|
initConfig()
|
||||||
cfg := config.Get()
|
cfg := config.Get()
|
||||||
|
|
||||||
@@ -40,9 +41,12 @@ func Config() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
logger.Debug(config.Show())
|
||||||
|
logger.Info("init logger succeeded")
|
||||||
|
|
||||||
// initializing database
|
// initializing database
|
||||||
model.InitMysql()
|
model.InitMysql()
|
||||||
|
logger.Info("init mysql succeeded")
|
||||||
model.InitCache(cfg.App.CacheType)
|
model.InitCache(cfg.App.CacheType)
|
||||||
|
|
||||||
// initializing tracing
|
// initializing tracing
|
||||||
@@ -55,6 +59,7 @@ func Config() {
|
|||||||
strconv.Itoa(cfg.Jaeger.AgentPort),
|
strconv.Itoa(cfg.Jaeger.AgentPort),
|
||||||
cfg.App.TracingSamplingRate,
|
cfg.App.TracingSamplingRate,
|
||||||
)
|
)
|
||||||
|
logger.Info("init tracer succeeded")
|
||||||
}
|
}
|
||||||
|
|
||||||
// initializing the print system and process resources
|
// initializing the print system and process resources
|
||||||
@@ -63,6 +68,7 @@ func Config() {
|
|||||||
stat.WithLog(logger.Get()),
|
stat.WithLog(logger.Get()),
|
||||||
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
||||||
)
|
)
|
||||||
|
logger.Info("init statistics succeeded")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,10 +92,14 @@ func initConfig() {
|
|||||||
appConfig := &config.Config{}
|
appConfig := &config.Config{}
|
||||||
params := &nacoscli.Params{}
|
params := &nacoscli.Params{}
|
||||||
_ = copier.Copy(params, &nacosConfig.Nacos)
|
_ = copier.Copy(params, &nacosConfig.Nacos)
|
||||||
err = nacoscli.Init(appConfig, params)
|
format, data, err := nacoscli.GetConfig(params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
||||||
}
|
}
|
||||||
|
err = conf.ParseConfigData(data, format, appConfig)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("parse configuration data err, %v", err))
|
||||||
|
}
|
||||||
if appConfig.App.Name == "" {
|
if appConfig.App.Name == "" {
|
||||||
panic("read the config from center error, config data is empty")
|
panic("read the config from center error, config data is empty")
|
||||||
}
|
}
|
||||||
@@ -108,5 +118,4 @@ func initConfig() {
|
|||||||
if version != "" {
|
if version != "" {
|
||||||
config.Get().App.Version = version
|
config.Get().App.Version = version
|
||||||
}
|
}
|
||||||
//fmt.Println(config.Show())
|
|
||||||
}
|
}
|
||||||
|
@@ -17,10 +17,10 @@ import (
|
|||||||
// @name Authorization
|
// @name Authorization
|
||||||
// @description Type "Bearer your-jwt-token" to Value
|
// @description Type "Bearer your-jwt-token" to Value
|
||||||
func main() {
|
func main() {
|
||||||
initial.Config()
|
initial.InitApp()
|
||||||
servers := initial.RegisterServers()
|
services := initial.CreateServices()
|
||||||
closes := initial.RegisterClose(servers)
|
closes := initial.Close(services)
|
||||||
|
|
||||||
a := app.New(servers, closes)
|
a := app.New(services, closes)
|
||||||
a.Run()
|
a.Run()
|
||||||
}
|
}
|
||||||
|
@@ -11,8 +11,8 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/tracer"
|
"github.com/zhufuyi/sponge/pkg/tracer"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterClose register for released resources
|
// Close releasing resources after service exit
|
||||||
func RegisterClose(servers []app.IServer) []app.Close {
|
func Close(servers []app.IServer) []app.Close {
|
||||||
var closes []app.Close
|
var closes []app.Close
|
||||||
|
|
||||||
// close server
|
// close server
|
@@ -16,14 +16,14 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterServers register for the app service
|
// CreateServices create grpc or http service
|
||||||
func RegisterServers() []app.IServer {
|
func CreateServices() []app.IServer {
|
||||||
var cfg = config.Get()
|
var cfg = config.Get()
|
||||||
var servers []app.IServer
|
var servers []app.IServer
|
||||||
|
|
||||||
// creating http service
|
// creating http service
|
||||||
httpAddr := ":" + strconv.Itoa(cfg.HTTP.Port)
|
httpAddr := ":" + strconv.Itoa(cfg.HTTP.Port)
|
||||||
httpRegistry, httpInstance := registryService("http", cfg.App.Host, cfg.HTTP.Port)
|
httpRegistry, httpInstance := registerService("http", cfg.App.Host, cfg.HTTP.Port)
|
||||||
httpServer := server.NewHTTPServer_pbExample(httpAddr,
|
httpServer := server.NewHTTPServer_pbExample(httpAddr,
|
||||||
server.WithHTTPReadTimeout(time.Second*time.Duration(cfg.HTTP.ReadTimeout)),
|
server.WithHTTPReadTimeout(time.Second*time.Duration(cfg.HTTP.ReadTimeout)),
|
||||||
server.WithHTTPWriteTimeout(time.Second*time.Duration(cfg.HTTP.WriteTimeout)),
|
server.WithHTTPWriteTimeout(time.Second*time.Duration(cfg.HTTP.WriteTimeout)),
|
||||||
@@ -35,7 +35,7 @@ func RegisterServers() []app.IServer {
|
|||||||
return servers
|
return servers
|
||||||
}
|
}
|
||||||
|
|
||||||
func registryService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
func registerService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
||||||
var (
|
var (
|
||||||
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
||||||
cfg = config.Get()
|
cfg = config.Get()
|
@@ -13,6 +13,7 @@ import (
|
|||||||
|
|
||||||
//"github.com/zhufuyi/sponge/internal/model"
|
//"github.com/zhufuyi/sponge/internal/model"
|
||||||
|
|
||||||
|
"github.com/zhufuyi/sponge/pkg/conf"
|
||||||
"github.com/zhufuyi/sponge/pkg/logger"
|
"github.com/zhufuyi/sponge/pkg/logger"
|
||||||
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
||||||
"github.com/zhufuyi/sponge/pkg/stat"
|
"github.com/zhufuyi/sponge/pkg/stat"
|
||||||
@@ -27,8 +28,8 @@ var (
|
|||||||
enableConfigCenter bool
|
enableConfigCenter bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config initial app configuration
|
// InitApp initial app configuration
|
||||||
func Config() {
|
func InitApp() {
|
||||||
initConfig()
|
initConfig()
|
||||||
cfg := config.Get()
|
cfg := config.Get()
|
||||||
|
|
||||||
@@ -41,9 +42,12 @@ func Config() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
logger.Debug(config.Show())
|
||||||
|
logger.Info("init logger succeeded")
|
||||||
|
|
||||||
// initializing database
|
// initializing database
|
||||||
//model.InitMysql()
|
//model.InitMysql()
|
||||||
|
//logger.Info("init mysql succeeded")
|
||||||
//model.InitCache(cfg.App.CacheType)
|
//model.InitCache(cfg.App.CacheType)
|
||||||
|
|
||||||
// initializing tracing
|
// initializing tracing
|
||||||
@@ -56,6 +60,7 @@ func Config() {
|
|||||||
strconv.Itoa(cfg.Jaeger.AgentPort),
|
strconv.Itoa(cfg.Jaeger.AgentPort),
|
||||||
cfg.App.TracingSamplingRate,
|
cfg.App.TracingSamplingRate,
|
||||||
)
|
)
|
||||||
|
logger.Info("init tracer succeeded")
|
||||||
}
|
}
|
||||||
|
|
||||||
// initializing the print system and process resources
|
// initializing the print system and process resources
|
||||||
@@ -64,6 +69,7 @@ func Config() {
|
|||||||
stat.WithLog(logger.Get()),
|
stat.WithLog(logger.Get()),
|
||||||
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
||||||
)
|
)
|
||||||
|
logger.Info("init statistics succeeded")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,10 +93,14 @@ func initConfig() {
|
|||||||
appConfig := &config.Config{}
|
appConfig := &config.Config{}
|
||||||
params := &nacoscli.Params{}
|
params := &nacoscli.Params{}
|
||||||
_ = copier.Copy(params, &nacosConfig.Nacos)
|
_ = copier.Copy(params, &nacosConfig.Nacos)
|
||||||
err = nacoscli.Init(appConfig, params)
|
format, data, err := nacoscli.GetConfig(params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
||||||
}
|
}
|
||||||
|
err = conf.ParseConfigData(data, format, appConfig)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("parse configuration data err, %v", err))
|
||||||
|
}
|
||||||
if appConfig.App.Name == "" {
|
if appConfig.App.Name == "" {
|
||||||
panic("read the config from center error, config data is empty")
|
panic("read the config from center error, config data is empty")
|
||||||
}
|
}
|
||||||
@@ -109,5 +119,4 @@ func initConfig() {
|
|||||||
if version != "" {
|
if version != "" {
|
||||||
config.Get().App.Version = version
|
config.Get().App.Version = version
|
||||||
}
|
}
|
||||||
//fmt.Println(config.Show())
|
|
||||||
}
|
}
|
||||||
|
@@ -8,10 +8,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
initial.Config()
|
initial.InitApp()
|
||||||
servers := initial.RegisterServers()
|
services := initial.CreateServices()
|
||||||
closes := initial.RegisterClose(servers)
|
closes := initial.Close(services)
|
||||||
|
|
||||||
a := app.New(servers, closes)
|
a := app.New(services, closes)
|
||||||
a.Run()
|
a.Run()
|
||||||
}
|
}
|
||||||
|
@@ -11,8 +11,8 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/tracer"
|
"github.com/zhufuyi/sponge/pkg/tracer"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterClose register for released resources
|
// Close releasing resources after service exit
|
||||||
func RegisterClose(servers []app.IServer) []app.Close {
|
func Close(servers []app.IServer) []app.Close {
|
||||||
var closes []app.Close
|
var closes []app.Close
|
||||||
|
|
||||||
// close server
|
// close server
|
@@ -16,14 +16,14 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
"github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterServers register for the app service
|
// CreateServices create grpc or http service
|
||||||
func RegisterServers() []app.IServer {
|
func CreateServices() []app.IServer {
|
||||||
var cfg = config.Get()
|
var cfg = config.Get()
|
||||||
var servers []app.IServer
|
var servers []app.IServer
|
||||||
|
|
||||||
// creating http service
|
// creating http service
|
||||||
httpAddr := ":" + strconv.Itoa(cfg.HTTP.Port)
|
httpAddr := ":" + strconv.Itoa(cfg.HTTP.Port)
|
||||||
httpRegistry, httpInstance := registryService("http", cfg.App.Host, cfg.HTTP.Port)
|
httpRegistry, httpInstance := registerService("http", cfg.App.Host, cfg.HTTP.Port)
|
||||||
httpServer := server.NewHTTPServer(httpAddr,
|
httpServer := server.NewHTTPServer(httpAddr,
|
||||||
server.WithHTTPReadTimeout(time.Second*time.Duration(cfg.HTTP.ReadTimeout)),
|
server.WithHTTPReadTimeout(time.Second*time.Duration(cfg.HTTP.ReadTimeout)),
|
||||||
server.WithHTTPWriteTimeout(time.Second*time.Duration(cfg.HTTP.WriteTimeout)),
|
server.WithHTTPWriteTimeout(time.Second*time.Duration(cfg.HTTP.WriteTimeout)),
|
||||||
@@ -34,7 +34,7 @@ func RegisterServers() []app.IServer {
|
|||||||
|
|
||||||
// creating grpc service
|
// creating grpc service
|
||||||
grpcAddr := ":" + strconv.Itoa(cfg.Grpc.Port)
|
grpcAddr := ":" + strconv.Itoa(cfg.Grpc.Port)
|
||||||
grpcRegistry, grpcInstance := registryService("grpc", cfg.App.Host, cfg.Grpc.Port)
|
grpcRegistry, grpcInstance := registerService("grpc", cfg.App.Host, cfg.Grpc.Port)
|
||||||
grpcServer := server.NewGRPCServer(grpcAddr,
|
grpcServer := server.NewGRPCServer(grpcAddr,
|
||||||
server.WithGrpcReadTimeout(time.Duration(cfg.Grpc.ReadTimeout)*time.Second),
|
server.WithGrpcReadTimeout(time.Duration(cfg.Grpc.ReadTimeout)*time.Second),
|
||||||
server.WithGrpcWriteTimeout(time.Duration(cfg.Grpc.WriteTimeout)*time.Second),
|
server.WithGrpcWriteTimeout(time.Duration(cfg.Grpc.WriteTimeout)*time.Second),
|
||||||
@@ -45,7 +45,7 @@ func RegisterServers() []app.IServer {
|
|||||||
return servers
|
return servers
|
||||||
}
|
}
|
||||||
|
|
||||||
func registryService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
func registerService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
||||||
var (
|
var (
|
||||||
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
||||||
cfg = config.Get()
|
cfg = config.Get()
|
@@ -12,6 +12,7 @@ import (
|
|||||||
"github.com/zhufuyi/sponge/internal/config"
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
"github.com/zhufuyi/sponge/internal/model"
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
|
|
||||||
|
"github.com/zhufuyi/sponge/pkg/conf"
|
||||||
"github.com/zhufuyi/sponge/pkg/logger"
|
"github.com/zhufuyi/sponge/pkg/logger"
|
||||||
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
||||||
"github.com/zhufuyi/sponge/pkg/stat"
|
"github.com/zhufuyi/sponge/pkg/stat"
|
||||||
@@ -26,8 +27,8 @@ var (
|
|||||||
enableConfigCenter bool
|
enableConfigCenter bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config initial app configuration
|
// InitApp initial app configuration
|
||||||
func Config() {
|
func InitApp() {
|
||||||
initConfig()
|
initConfig()
|
||||||
cfg := config.Get()
|
cfg := config.Get()
|
||||||
|
|
||||||
@@ -40,9 +41,12 @@ func Config() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
logger.Debug(config.Show())
|
||||||
|
logger.Info("init logger succeeded")
|
||||||
|
|
||||||
// initializing database
|
// initializing database
|
||||||
model.InitMysql()
|
model.InitMysql()
|
||||||
|
logger.Info("init mysql succeeded")
|
||||||
model.InitCache(cfg.App.CacheType)
|
model.InitCache(cfg.App.CacheType)
|
||||||
|
|
||||||
// initializing tracing
|
// initializing tracing
|
||||||
@@ -55,6 +59,7 @@ func Config() {
|
|||||||
strconv.Itoa(cfg.Jaeger.AgentPort),
|
strconv.Itoa(cfg.Jaeger.AgentPort),
|
||||||
cfg.App.TracingSamplingRate,
|
cfg.App.TracingSamplingRate,
|
||||||
)
|
)
|
||||||
|
logger.Info("init tracer succeeded")
|
||||||
}
|
}
|
||||||
|
|
||||||
// initializing the print system and process resources
|
// initializing the print system and process resources
|
||||||
@@ -63,6 +68,7 @@ func Config() {
|
|||||||
stat.WithLog(logger.Get()),
|
stat.WithLog(logger.Get()),
|
||||||
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
stat.WithAlarm(), // invalid if it is windows, the default threshold for cpu and memory is 0.8, you can modify them
|
||||||
)
|
)
|
||||||
|
logger.Info("init statistics succeeded")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,10 +92,14 @@ func initConfig() {
|
|||||||
appConfig := &config.Config{}
|
appConfig := &config.Config{}
|
||||||
params := &nacoscli.Params{}
|
params := &nacoscli.Params{}
|
||||||
_ = copier.Copy(params, &nacosConfig.Nacos)
|
_ = copier.Copy(params, &nacosConfig.Nacos)
|
||||||
err = nacoscli.Init(appConfig, params)
|
format, data, err := nacoscli.GetConfig(params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
panic(fmt.Sprintf("connect to configuration center err, %v", err))
|
||||||
}
|
}
|
||||||
|
err = conf.ParseConfigData(data, format, appConfig)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("parse configuration data err, %v", err))
|
||||||
|
}
|
||||||
if appConfig.App.Name == "" {
|
if appConfig.App.Name == "" {
|
||||||
panic("read the config from center error, config data is empty")
|
panic("read the config from center error, config data is empty")
|
||||||
}
|
}
|
||||||
@@ -108,5 +118,4 @@ func initConfig() {
|
|||||||
if version != "" {
|
if version != "" {
|
||||||
config.Get().App.Version = version
|
config.Get().App.Version = version
|
||||||
}
|
}
|
||||||
//fmt.Println(config.Show())
|
|
||||||
}
|
}
|
||||||
|
@@ -17,10 +17,10 @@ import (
|
|||||||
// @name Authorization
|
// @name Authorization
|
||||||
// @description Type "Bearer your-jwt-token" to Value
|
// @description Type "Bearer your-jwt-token" to Value
|
||||||
func main() {
|
func main() {
|
||||||
initial.Config()
|
initial.InitApp()
|
||||||
servers := initial.RegisterServers()
|
services := initial.CreateServices()
|
||||||
closes := initial.RegisterClose(servers)
|
closes := initial.Close(services)
|
||||||
|
|
||||||
a := app.New(servers, closes)
|
a := app.New(services, closes)
|
||||||
a.Run()
|
a.Run()
|
||||||
}
|
}
|
||||||
|
2
go.mod
2
go.mod
@@ -1,6 +1,6 @@
|
|||||||
module github.com/zhufuyi/sponge
|
module github.com/zhufuyi/sponge
|
||||||
|
|
||||||
go 1.19
|
go 1.20
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/DATA-DOG/go-sqlmock v1.5.0
|
github.com/DATA-DOG/go-sqlmock v1.5.0
|
||||||
|
@@ -123,3 +123,13 @@ func replaceDSN(str string) string {
|
|||||||
|
|
||||||
return fmt.Sprintf("%s******%s", data[:start+1], data[end:])
|
return fmt.Sprintf("%s******%s", data[:start+1], data[end:])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ParseConfigData parse data to struct
|
||||||
|
func ParseConfigData(data []byte, format string, obj interface{}) error {
|
||||||
|
viper.SetConfigType(format)
|
||||||
|
err := viper.ReadConfig(bytes.NewBuffer(data))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return viper.Unmarshal(obj)
|
||||||
|
}
|
||||||
|
@@ -74,3 +74,14 @@ func TestWatch(t *testing.T) {
|
|||||||
_ = os.WriteFile("test.yml", content, 0666) // recovery documents
|
_ = os.WriteFile("test.yml", content, 0666) // recovery documents
|
||||||
time.Sleep(time.Millisecond * 100)
|
time.Sleep(time.Millisecond * 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestParseConfigData(t *testing.T) {
|
||||||
|
conf := make(map[string]interface{})
|
||||||
|
data, _ := os.ReadFile("test.yml")
|
||||||
|
err := ParseConfigData(data, "yaml", &conf)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
t.Log(conf)
|
||||||
|
}
|
||||||
|
@@ -3,10 +3,10 @@ package mysql
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"gorm.io/gorm/logger"
|
"gorm.io/gorm/logger"
|
||||||
)
|
)
|
||||||
|
@@ -1,10 +1,11 @@
|
|||||||
package query
|
package query
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestPage(t *testing.T) {
|
func TestPage(t *testing.T) {
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
## nacoscli
|
## nacoscli
|
||||||
|
|
||||||
Get the configuration from the nacos configuration center and parse it into a structure.
|
Get the configuration from the nacos configuration center.
|
||||||
|
|
||||||
### Example of use
|
### Example of use
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ Get the configuration from the nacos configuration center and parse it into a st
|
|||||||
DataId: "user-srv.yml",
|
DataId: "user-srv.yml",
|
||||||
Format: "yaml",
|
Format: "yaml",
|
||||||
}
|
}
|
||||||
err := nacoscli.Init(a, params)
|
_, _, err = GetConfig(params)
|
||||||
|
|
||||||
// Way 2: setting up ClientConfig and ServerConfig
|
// Way 2: setting up ClientConfig and ServerConfig
|
||||||
a = &config{}
|
a = &config{}
|
||||||
@@ -39,7 +39,7 @@ Get the configuration from the nacos configuration center and parse it into a st
|
|||||||
Port: 8848,
|
Port: 8848,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
err = nacoscli.Init(a, params,
|
_, _, err = GetConfig(params,
|
||||||
WithClientConfig(clientConfig),
|
WithClientConfig(clientConfig),
|
||||||
WithServerConfigs(serverConfigs),
|
WithServerConfigs(serverConfigs),
|
||||||
)
|
)
|
||||||
|
@@ -2,7 +2,6 @@
|
|||||||
package nacoscli
|
package nacoscli
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
@@ -12,7 +11,6 @@ import (
|
|||||||
"github.com/nacos-group/nacos-sdk-go/v2/clients/naming_client"
|
"github.com/nacos-group/nacos-sdk-go/v2/clients/naming_client"
|
||||||
"github.com/nacos-group/nacos-sdk-go/v2/common/constant"
|
"github.com/nacos-group/nacos-sdk-go/v2/common/constant"
|
||||||
"github.com/nacos-group/nacos-sdk-go/v2/vo"
|
"github.com/nacos-group/nacos-sdk-go/v2/vo"
|
||||||
"github.com/spf13/viper"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Params nacos parameters
|
// Params nacos parameters
|
||||||
@@ -88,11 +86,11 @@ func setParams(params *Params, opts ...Option) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init get configuration from nacos and parse to struct, use for configuration center
|
// GetConfig get configuration from nacos
|
||||||
func Init(obj interface{}, params *Params, opts ...Option) error {
|
func GetConfig(params *Params, opts ...Option) (string, []byte, error) {
|
||||||
err := params.valid()
|
err := params.valid()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
setParams(params, opts...)
|
setParams(params, opts...)
|
||||||
@@ -105,30 +103,26 @@ func Init(obj interface{}, params *Params, opts ...Option) error {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// read config content
|
// read config content
|
||||||
content, err := configClient.GetConfig(vo.ConfigParam{
|
data, err := configClient.GetConfig(vo.ConfigParam{
|
||||||
DataId: params.DataID,
|
DataId: params.DataID,
|
||||||
Group: params.Group,
|
Group: params.Group,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse config
|
return params.Format, []byte(data), err
|
||||||
viper.SetConfigType(params.Format)
|
}
|
||||||
err = viper.ReadConfig(bytes.NewBuffer([]byte(content)))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
err = viper.Unmarshal(obj)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
// Init get configuration from nacos and parse to struct, use for configuration center
|
||||||
|
//
|
||||||
|
// Deprecated: use GetConfig instead.
|
||||||
|
func Init(obj interface{}, params *Params, opts ...Option) error {
|
||||||
|
return errors.New("not implemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewNamingClient create a service registration and discovery of nacos client.
|
// NewNamingClient create a service registration and discovery of nacos client.
|
||||||
|
@@ -19,7 +19,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestParse(t *testing.T) {
|
func TestParse(t *testing.T) {
|
||||||
conf := new(map[string]interface{})
|
//conf := new(map[string]interface{})
|
||||||
params := &Params{
|
params := &Params{
|
||||||
IPAddr: ipAddr,
|
IPAddr: ipAddr,
|
||||||
Port: uint64(port),
|
Port: uint64(port),
|
||||||
@@ -30,11 +30,11 @@ func TestParse(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
utils.SafeRunWithTimeout(time.Second*2, func(cancel context.CancelFunc) {
|
utils.SafeRunWithTimeout(time.Second*2, func(cancel context.CancelFunc) {
|
||||||
err := Init(conf, params)
|
format, data, err := GetConfig(params)
|
||||||
t.Log(err, conf)
|
t.Log(err, format, data)
|
||||||
})
|
})
|
||||||
|
|
||||||
conf = new(map[string]interface{})
|
//conf = new(map[string]interface{})
|
||||||
params = &Params{
|
params = &Params{
|
||||||
Group: "dev",
|
Group: "dev",
|
||||||
DataID: "serverNameExample.yml",
|
DataID: "serverNameExample.yml",
|
||||||
@@ -54,12 +54,12 @@ func TestParse(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
utils.SafeRunWithTimeout(time.Second*2, func(cancel context.CancelFunc) {
|
utils.SafeRunWithTimeout(time.Second*2, func(cancel context.CancelFunc) {
|
||||||
err := Init(conf, params,
|
format, data, err := GetConfig(params,
|
||||||
WithClientConfig(clientConfig),
|
WithClientConfig(clientConfig),
|
||||||
WithServerConfigs(serverConfigs),
|
WithServerConfigs(serverConfigs),
|
||||||
WithAuth("foo", "bar"),
|
WithAuth("foo", "bar"),
|
||||||
)
|
)
|
||||||
t.Log(err, conf)
|
t.Log(err, format, data)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,6 +99,6 @@ func TestError(t *testing.T) {
|
|||||||
err = p.valid()
|
err = p.valid()
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
err = Init(nil, p)
|
_, _, err = GetConfig(&Params{})
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,7 @@ Service registry, corresponding to service [discovery](../discovery) corresponds
|
|||||||
```go
|
```go
|
||||||
import "github.com/zhufuyi/sponge/pkg/servicerd/registry"
|
import "github.com/zhufuyi/sponge/pkg/servicerd/registry"
|
||||||
|
|
||||||
func registryService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
func registerService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) {
|
||||||
var (
|
var (
|
||||||
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port)
|
||||||
cfg = config.Get()
|
cfg = config.Get()
|
||||||
@@ -74,7 +74,7 @@ func registryService(scheme string, host string, port int) (registry.Registry, *
|
|||||||
|
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
iRegistry, serviceInstance := registryService("http", "127.0.0.1", 8080)
|
iRegistry, serviceInstance := registerService("http", "127.0.0.1", 8080)
|
||||||
|
|
||||||
// register service
|
// register service
|
||||||
ctx, _ := context.WithTimeout(context.Background(), 3*time.Second)
|
ctx, _ := context.WithTimeout(context.Background(), 3*time.Second)
|
||||||
@@ -88,4 +88,3 @@ func registryService(scheme string, host string, port int) (registry.Registry, *
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@@ -182,7 +182,7 @@ message List{{.TableName}}ByIDsReply {
|
|||||||
|
|
||||||
message List{{.TableName}}ByLastIDRequest {
|
message List{{.TableName}}ByLastIDRequest {
|
||||||
uint64 lastID = 1; // last id
|
uint64 lastID = 1; // last id
|
||||||
uint32 limit = 2; // page size
|
uint32 limit = 2 [(validate.rules).uint32.gt = 0]; // page size
|
||||||
string sort = 3; // sort by column name of table, default is -id, the - sign indicates descending order.
|
string sort = 3; // sort by column name of table, default is -id, the - sign indicates descending order.
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -464,7 +464,7 @@ message List{{.TableName}}ByIDsReply {
|
|||||||
|
|
||||||
message List{{.TableName}}ByLastIDRequest {
|
message List{{.TableName}}ByLastIDRequest {
|
||||||
uint64 lastID = 1 [(tagger.tags) = "form:\"lastID\""]; // last id
|
uint64 lastID = 1 [(tagger.tags) = "form:\"lastID\""]; // last id
|
||||||
uint32 limit = 2 [(tagger.tags) = "form:\"limit\""]; // page size
|
uint32 limit = 2 [(validate.rules).uint32.gt = 0, (tagger.tags) = "form:\"limit\""]; // page size
|
||||||
string sort = 3 [(tagger.tags) = "form:\"sort\""]; // sort by column name of table, default is -id, the - sign indicates descending order.
|
string sort = 3 [(tagger.tags) = "form:\"sort\""]; // sort by column name of table, default is -id, the - sign indicates descending order.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user