change layout
CI / changes (push) Successful in 5s
CI / docker-bff (push) Failing after 7s
CI / docker-product (push) Failing after 5s
CI / docker-admin (push) Failing after 4s
CI / docker-user (push) Failing after 6s

This commit is contained in:
2026-08-20 15:41:44 +08:00
parent 57e04be304
commit be8f89f449
176 changed files with 7009 additions and 4498 deletions
+133
View File
@@ -0,0 +1,133 @@
package main
import (
"flag"
"fmt"
"lone-services/pkg/discovery"
"lone-services/pkg/log"
"lone-services/pkg/modelbase"
"lone-services/pkg/mysql"
"lone-services/pkg/redis"
"lone-services/pkg/validate"
product "lone-services/rpc/product/pb"
"lone-services/services/product/internal/config"
"lone-services/services/product/internal/server"
"lone-services/services/product/internal/svc"
"net"
"os"
"strconv"
"github.com/zeromicro/go-zero/core/conf"
"github.com/zeromicro/go-zero/core/logx"
"github.com/zeromicro/go-zero/core/service"
"github.com/zeromicro/go-zero/zrpc"
"google.golang.org/grpc"
"google.golang.org/grpc/reflection"
)
var configFile = flag.String("f", "etc/product.yaml", "the config file")
func main() {
flag.Parse()
var c config.Config
conf.MustLoad(*configFile, &c)
if err := log.Init(log.Config{
Path: c.AppLog.Path,
InfoFile: c.AppLog.InfoFile,
ErrorFile: c.AppLog.ErrorFile,
FatalFile: c.AppLog.FatalFile,
MaxSize: c.AppLog.MaxSize,
MaxBackups: c.AppLog.MaxBackups,
MaxAge: c.AppLog.MaxAge,
}); err != nil {
fmt.Fprintf(os.Stderr, "log init: %v\n", err)
os.Exit(1)
}
if err := discovery.Init(discovery.Config{
Hosts: c.Nacos.Hosts,
NamespaceId: c.Nacos.NamespaceId,
Group: c.Nacos.Group,
}); err != nil {
logx.Errorf("nacos init: %v", err)
}
registerIP := c.Nacos.RegisterIP
port, err := listenPort(c.ListenOn)
if err != nil {
logx.Errorf("parse ListenOn: %v", err)
}
if err := discovery.Register(discovery.Instance{
ServiceName: c.Name,
IP: registerIP,
Port: port,
Group: c.Nacos.Group,
}); err != nil {
logx.Errorf("nacos register: %v", err)
}
defer func() {
if err := discovery.Deregister(); err != nil {
logx.Errorf("nacos deregister: %v", err)
}
}()
db, err := mysql.New(mysql.Config{
Host: c.Mysql.Host,
Port: c.Mysql.Port,
User: c.Mysql.User,
Password: c.Mysql.Password,
Database: c.Mysql.Database,
Charset: c.Mysql.Charset,
Prefix: c.Mysql.Prefix,
ReadHost: c.Mysql.ReadHost,
ReadPort: c.Mysql.ReadPort,
ReadUser: c.Mysql.ReadUser,
ReadPassword: c.Mysql.ReadPassword,
ReadDatabase: c.Mysql.ReadDatabase,
})
if err != nil {
logx.Errorf("mysql init: %v", err)
}
if err := redis.Init(redis.Config{
Host: c.BizRedis.Host,
Port: c.BizRedis.Port,
Password: c.BizRedis.Password,
DB: c.BizRedis.DB,
}); err != nil {
logx.Errorf("redis init: %v", err)
}
modelbase.Init(db, modelbase.Config{Prefix: c.Mysql.Prefix})
ctx := svc.NewServiceContext(c, db)
s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) {
product.RegisterProductServer(grpcServer, server.NewProductServer(ctx))
if c.Mode == service.DevMode || c.Mode == service.TestMode {
reflection.Register(grpcServer)
}
})
defer s.Stop()
logx.AddWriter(logx.NewWriter(os.Stdout))
s.AddUnaryInterceptors(validate.UnaryServerInterceptor(validate.MustNew()))
logx.Infof("Starting rpc server at %s...", c.ListenOn)
s.Start()
}
func listenPort(listenOn string) (uint64, error) {
_, portStr, err := net.SplitHostPort(listenOn)
if err != nil {
return 0, err
}
return strconv.ParseUint(portStr, 10, 64)
}