60 lines
1.2 KiB
Go
60 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
|
|
"bff/internal/config"
|
|
"bff/internal/dialer"
|
|
"bff/internal/response"
|
|
|
|
"pkg.local/discovery"
|
|
|
|
"github.com/zeromicro/go-zero/core/conf"
|
|
"github.com/zeromicro/go-zero/gateway"
|
|
)
|
|
|
|
var configFile = flag.String("f", "etc/bff.yaml", "the config file")
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
|
|
var c config.Config
|
|
conf.MustLoad(*configFile, &c)
|
|
|
|
response.Init(c.Response.IsDebug, c.Response.EncryptKey)
|
|
|
|
if err := discovery.Init(discovery.Config{
|
|
Hosts: c.Nacos.Hosts,
|
|
NamespaceId: c.Nacos.NamespaceId,
|
|
Group: c.Nacos.Group,
|
|
}); err != nil {
|
|
log.Fatalf("nacos init: %v", err)
|
|
}
|
|
|
|
registerIP := c.Nacos.RegisterIP
|
|
if err := discovery.Register(discovery.Instance{
|
|
ServiceName: c.Name,
|
|
IP: registerIP,
|
|
Port: uint64(c.Port),
|
|
Group: c.Nacos.Group,
|
|
}); err != nil {
|
|
log.Fatalf("nacos register: %v", err)
|
|
}
|
|
defer func() {
|
|
if err := discovery.Deregister(); err != nil {
|
|
log.Printf("nacos deregister: %v", err)
|
|
}
|
|
}()
|
|
|
|
gw := gateway.MustNewServer(c.GatewayConf,
|
|
gateway.WithDialer(dialer.Nacos),
|
|
gateway.WithMiddleware(response.Wrap),
|
|
)
|
|
defer gw.Stop()
|
|
|
|
fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
|
|
gw.Start()
|
|
}
|