main.go 2.0 KB
Newer Older
E
eoLinker API Management 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
package main

import (
	"encoding/json"
	"flag"
	"fmt"
	endless2 "github.com/eolinker/goku/common/endless"
	log "github.com/eolinker/goku/goku-log"
	"github.com/eolinker/goku/goku-node/cmd"
	"runtime"

	node_common "github.com/eolinker/goku/goku-node/node-common"

	"github.com/eolinker/goku/common/database"
	"github.com/eolinker/goku/common/general"
	"github.com/eolinker/goku/common/redis-manager"
	goku_node "github.com/eolinker/goku/goku-node"
	"github.com/eolinker/goku/server/entity"
)

var (
	adminHost string
	//adminPort  int
	listenPort int
)

func initConfig(resultInfo map[string]interface{}) *entity.ClusterInfo {
	c := entity.ClusterInfo{}
	clusterConfig, err := json.Marshal(resultInfo["cluster"])
	if err != nil {
		log.Panic(err)
	}

	err = json.Unmarshal(clusterConfig, &c)
	if err != nil {
		log.Panic(err)
	}
	return &c
}

func main() {


	runtime.GOMAXPROCS(runtime.NumCPU())

	flag.StringVar(&adminHost, "admin", "127.0.0.1:7005", "Please provide a valid host!")
	//flag.IntVar(&adminPort, "P", 7005, "Please provide a valid port")
	flag.IntVar(&listenPort, "port", 6689, "Please provide a valid listen port!")
	isDebug := flag.Bool("debug",false,"")

	flag.Parse()
	if *isDebug{
		log.StartDebug()
	}
	//
	node_common.SetAdmin(adminHost)
	node_common.ListenPort = listenPort

	success, config := cmd.GetConfig(listenPort)
	if !success {
		log.Fatal(" Fail to get node config!")
		return
	}

	node_common.SetClusterName(config.Name)

	err:=database.InitConnection(&config.DB)
	if err!=nil{
		log.Fatal("Fail to Init db:",err)
		return
	}
	goku_node.InitLog()
	log.Debug("goku_node.InitLog")
	r := redis_manager.Create(&config.Redis)
	redis_manager.SetDefault(r)

	log.Debug("redis_manager.SetDefault")
	// 其他需要初始化的模块
	_=general.General()

	log.Debug("general.General()")
	goku_node.InitServer()
	go cmd.Heartbeat(listenPort)
	server := goku_node.NewRouter()

	err = endless2.ListenAndServe(fmt.Sprintf(":%d", listenPort), server)
	if err != nil {
		log.Fatal(err)
	}
	log.Fatalf("Server on :%d stoped \n", listenPort)


}