| | |
| | | import ( |
| | | "context" |
| | | "flag" |
| | | "net/http" |
| | | "fmt" |
| | | _ "net/http/pprof" |
| | | "os" |
| | | "os/signal" |
| | | "syscall" |
| | | "vamicro/config" |
| | | "vamicro/extend/util" |
| | | //"vamicro/extend/util" |
| | | "vamicro/system-service/broadcast" |
| | | "vamicro/system-service/controllers" |
| | | "vamicro/system-service/models" |
| | |
| | | |
| | | func main() { |
| | | // pprof 用于分析性能 |
| | | go func() { |
| | | logger.Info(http.ListenAndServe("0.0.0.0:6078", nil)) |
| | | }() |
| | | //go func() { |
| | | // logger.Info(http.ListenAndServe("0.0.0.0:6078", nil)) |
| | | //}() |
| | | |
| | | models.Init() |
| | | defer models.CloseDB() |
| | | models.GetDB().SetLogger(&serf.DbLogger{}) |
| | |
| | | Proc: *proc, |
| | | Channel: nil, |
| | | PubTopic: pubTopics, |
| | | SubTopic: []string{versionControlS.AuthorizationUpdateTopic}, |
| | | SubTopic: []string{versionControlS.AuthorizationUpdateTopic, "sync-proc-message-to-serf"}, |
| | | SubNetTopic: []string{}, |
| | | } |
| | | |
| | | q := make(chan os.Signal, 1) |
| | | signal.Notify(q, os.Interrupt, os.Kill, syscall.SIGTERM) |
| | | |
| | | ms, err := bhomeclient.NewMicroNode(ctx, q, config.Server.AnalyServerId, reg, logger.Debug) |
| | | ms, err := bhomeclient.NewMicroNode(ctx, q, config.Server.AnalyServerId, reg, nil) |
| | | if err != nil { |
| | | return |
| | | } |
| | |
| | | bhomedbapi.InitDoReq(ms.RequestOnly) |
| | | bhomedbapi.InitLog(logger.Debug) |
| | | |
| | | util.AuthCheck(ctx) //授权检查 |
| | | //util.AuthCheck(ctx) //授权检查 |
| | | |
| | | go ms.StartServer(fm) |
| | | go dealSubMsg(ctx, ms) |
| | | |
| | | serf.InitBusH(ms) |
| | | serf.InitAgent(ctx) |
| | | |
| | | go service.WatchEsAndWeedfsIp(ms) |
| | | //go service.WatchEsAndWeedfsIp(ms) |
| | | go serf.StartSyncSqlToSerf() |
| | | |
| | | go service.StartSyncDev() |
| | | //go service.StartSyncDev() |
| | | |
| | | go broadcast.StartServer() //设备可以被广播搜索 |
| | | |
| | | //go service.CollectDeviceInfo(ctx, ms) |
| | | |
| | | go service.WatchAuthSetChange(ms) //根据授权文件监视通道数量变化 |
| | | //go service.WatchAuthSetChange(ms) //根据授权文件监视通道数量变化 |
| | | |
| | | //统计系统运行状态 |
| | | go sys.GatherStat() |
| | |
| | | funcMap[urlPrefix+"/sysset/getWifiList"] = ssController.GetWifiList |
| | | funcMap[urlPrefix+"/sysset/getDefKeyboardLayout"] = ssController.GetDefKeyboardLayout |
| | | funcMap[urlPrefix+"/sysset/connectWifi"] = ssController.ConnectWifi |
| | | funcMap[urlPrefix+"/sysset/disconnectWifi"] = ssController.DisonnectWifi |
| | | funcMap[urlPrefix+"/sysset/getSysSetting"] = ssController.GetSysSetting |
| | | funcMap[urlPrefix+"/sysset/updateSysSetting"] = ssController.UpdateSysSetting |
| | | funcMap[urlPrefix+"/sysset/freedisk"] = ssController.DiskInfo |
| | |
| | | funcMap[urlPrefix+"/cluster/updateClusterName"] = clusterController.UpdateClusterName |
| | | funcMap[urlPrefix+"/cluster/leave"] = clusterController.Leave |
| | | funcMap[urlPrefix+"/cluster/findIpByNode"] = clusterController.FindIpByNode |
| | | funcMap[urlPrefix+"/cluster/status"] = clusterController.GetClusterStat |
| | | funcMap[urlPrefix+"/cluster/update2Master"] = clusterController.Update2Master |
| | | |
| | | sysMenuC := new(controllers.SysMenuController) |
| | | funcMap["/data/api-u/sysmenus/tree"] = sysMenuC.MenuTree |
| | |
| | | for key, _ := range funcMap { |
| | | pubTopics = append(pubTopics, key) |
| | | } |
| | | |
| | | return funcMap, pubTopics |
| | | } |
| | | |
| | | //测试接收全网消息 |
| | | // 测试接收全网消息 |
| | | func dealSubMsg(ctx context.Context, ms *bhomeclient.MicroNode) { |
| | | fmt.Println("dealSubMsg") |
| | | for { |
| | | select { |
| | | case <-ctx.Done(): |
| | | return |
| | | case msg := <-ms.SubCh: |
| | | logger.Debug("recv sub msg topic:", string(msg.Topic), " data:", string(msg.Data)) |
| | | logger.Debug("recv sub msg topic:", string(msg.Topic), " data len:", len(msg.Data)) |
| | | service.PersistentWrapper(string(msg.Topic), msg.Data) |
| | | } |
| | | } |