This repository has been archived by the owner on Feb 2, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 307
/
main.go
101 lines (84 loc) · 2.34 KB
/
main.go
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
94
95
96
97
98
99
100
101
package main
import (
"fmt"
"github.com/micro-in-cn/tutorials/microservice-in-micro/part8/auth/handler"
"github.com/micro-in-cn/tutorials/microservice-in-micro/part8/auth/model"
s "github.com/micro-in-cn/tutorials/microservice-in-micro/part8/auth/proto/auth"
"github.com/micro-in-cn/tutorials/microservice-in-micro/part8/basic"
"github.com/micro-in-cn/tutorials/microservice-in-micro/part8/basic/common"
"github.com/micro-in-cn/tutorials/microservice-in-micro/part8/basic/config"
tracer "github.com/micro-in-cn/tutorials/microservice-in-micro/part8/plugins/tracer/jaeger"
"github.com/micro/cli"
"github.com/micro/go-micro"
"github.com/micro/go-micro/registry"
"github.com/micro/go-micro/registry/etcd"
"github.com/micro/go-micro/util/log"
"github.com/micro/go-plugins/config/source/grpc"
openTrace "github.com/micro/go-plugins/wrapper/trace/opentracing"
"github.com/opentracing/opentracing-go"
"os"
)
var (
appName = "auth_srv"
cfg = &authCfg{}
)
type authCfg struct {
common.AppCfg
}
func main() {
// 初始化配置、数据库等信息
initCfg()
// 使用 Etcd 注册
micReg := etcd.NewRegistry(registryOptions)
t, io, err := tracer.NewTracer(cfg.Name, "")
if err != nil {
log.Fatal(err)
}
defer io.Close()
opentracing.SetGlobalTracer(t)
// 新建服务
service := micro.NewService(
micro.Name(cfg.Name),
micro.Registry(micReg),
micro.Version(cfg.Version),
micro.Address(cfg.Addr()),
micro.WrapHandler(openTrace.NewHandlerWrapper(opentracing.GlobalTracer())),
)
// 服务初始化
service.Init(
micro.Action(func(c *cli.Context) {
// 初始化handler
model.Init()
// 初始化handler
handler.Init()
}),
)
// 注册服务
s.RegisterServiceHandler(service.Server(), new(handler.Service))
// 启动服务
if err := service.Run(); err != nil {
log.Fatal(err)
}
}
func registryOptions(ops *registry.Options) {
etcdCfg := &common.Etcd{}
err := config.C().App("etcd", etcdCfg)
if err != nil {
panic(err)
}
ops.Addrs = []string{fmt.Sprintf("%s:%d", etcdCfg.Host, etcdCfg.Port)}
}
func initCfg() {
configAddr := os.Getenv("MICRO_BOOK_CONFIG_GRPC_ADDR")
source := grpc.NewSource(
grpc.WithAddress(configAddr),
grpc.WithPath("micro"),
)
basic.Init(config.WithSource(source))
err := config.C().App(appName, cfg)
if err != nil {
panic(err)
}
log.Logf("[initCfg] 配置,cfg:%v", cfg)
return
}