|
1 | 1 | package initial
|
2 | 2 |
|
3 | 3 | import (
|
4 |
| - "fmt" |
5 | 4 | "strconv"
|
6 | 5 |
|
7 | 6 | "github.com/zhufuyi/sponge/pkg/app"
|
8 |
| - "github.com/zhufuyi/sponge/pkg/logger" |
9 |
| - "github.com/zhufuyi/sponge/pkg/servicerd/registry" |
10 |
| - "github.com/zhufuyi/sponge/pkg/servicerd/registry/consul" |
11 |
| - "github.com/zhufuyi/sponge/pkg/servicerd/registry/etcd" |
12 |
| - "github.com/zhufuyi/sponge/pkg/servicerd/registry/nacos" |
13 | 7 |
|
14 | 8 | "github.com/zhufuyi/sponge/internal/config"
|
15 | 9 | "github.com/zhufuyi/sponge/internal/server"
|
16 | 10 | )
|
17 | 11 |
|
18 |
| -// CreateServices create grpc or http service |
| 12 | +// CreateServices create grpc service |
19 | 13 | func CreateServices() []app.IServer {
|
20 | 14 | var cfg = config.Get()
|
21 | 15 | var servers []app.IServer
|
| 16 | + var grpcAddr = ":" + strconv.Itoa(cfg.Grpc.Port) |
| 17 | + |
| 18 | + // case 1, create a grpc service without registry |
| 19 | + grpcServer := server.NewGRPCServer(grpcAddr) |
| 20 | + |
| 21 | + // case 2, create a grpc service and register it with consul or etcd or nacos |
| 22 | + //grpcRegistry, grpcInstance := registerService("grpc", cfg.App.Host, cfg.Grpc.Port) |
| 23 | + //grpcServer := server.NewGRPCServer(grpcAddr, |
| 24 | + // server.WithGrpcRegistry(grpcRegistry, grpcInstance), |
| 25 | + //) |
22 | 26 |
|
23 |
| - // creating grpc service |
24 |
| - grpcAddr := ":" + strconv.Itoa(cfg.Grpc.Port) |
25 |
| - grpcRegistry, grpcInstance := registerService("grpc", cfg.App.Host, cfg.Grpc.Port) |
26 |
| - grpcServer := server.NewGRPCServer(grpcAddr, |
27 |
| - server.WithGrpcRegistry(grpcRegistry, grpcInstance), |
28 |
| - ) |
29 | 27 | servers = append(servers, grpcServer)
|
30 | 28 |
|
31 | 29 | return servers
|
32 | 30 | }
|
33 | 31 |
|
34 |
| -func registerService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) { |
35 |
| - var ( |
36 |
| - instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port) |
37 |
| - cfg = config.Get() |
38 |
| - |
39 |
| - iRegistry registry.Registry |
40 |
| - instance *registry.ServiceInstance |
41 |
| - err error |
42 |
| - |
43 |
| - id = cfg.App.Name + "_" + scheme + "_" + host |
44 |
| - logField logger.Field |
45 |
| - ) |
46 |
| - |
47 |
| - switch cfg.App.RegistryDiscoveryType { |
48 |
| - // registering service with consul |
49 |
| - case "consul": |
50 |
| - iRegistry, instance, err = consul.NewRegistry( |
51 |
| - cfg.Consul.Addr, |
52 |
| - id, |
53 |
| - cfg.App.Name, |
54 |
| - []string{instanceEndpoint}, |
55 |
| - ) |
56 |
| - if err != nil { |
57 |
| - panic(err) |
58 |
| - } |
59 |
| - logField = logger.Any("consulAddress", cfg.Consul.Addr) |
60 |
| - |
61 |
| - // registering service with etcd |
62 |
| - case "etcd": |
63 |
| - iRegistry, instance, err = etcd.NewRegistry( |
64 |
| - cfg.Etcd.Addrs, |
65 |
| - id, |
66 |
| - cfg.App.Name, |
67 |
| - []string{instanceEndpoint}, |
68 |
| - ) |
69 |
| - if err != nil { |
70 |
| - panic(err) |
71 |
| - } |
72 |
| - logField = logger.Any("etcdAddress", cfg.Etcd.Addrs) |
73 |
| - |
74 |
| - // registering service with nacos |
75 |
| - case "nacos": |
76 |
| - iRegistry, instance, err = nacos.NewRegistry( |
77 |
| - cfg.NacosRd.IPAddr, |
78 |
| - cfg.NacosRd.Port, |
79 |
| - cfg.NacosRd.NamespaceID, |
80 |
| - id, |
81 |
| - cfg.App.Name, |
82 |
| - []string{instanceEndpoint}, |
83 |
| - ) |
84 |
| - if err != nil { |
85 |
| - panic(err) |
86 |
| - } |
87 |
| - logField = logger.String("nacosAddress", fmt.Sprintf("%v:%d", cfg.NacosRd.IPAddr, cfg.NacosRd.Port)) |
88 |
| - } |
89 |
| - |
90 |
| - if instance != nil { |
91 |
| - msg := fmt.Sprintf("register service address to %s", cfg.App.RegistryDiscoveryType) |
92 |
| - logger.Info(msg, logField, logger.String("id", id), logger.String("name", cfg.App.Name), logger.String("endpoint", instanceEndpoint)) |
93 |
| - return iRegistry, instance |
94 |
| - } |
95 |
| - |
96 |
| - return nil, nil |
97 |
| -} |
| 32 | +// register service with consul or etcd or nacos, select one of them to use |
| 33 | +//func registerService(scheme string, host string, port int) (registry.Registry, *registry.ServiceInstance) { |
| 34 | +// var ( |
| 35 | +// instanceEndpoint = fmt.Sprintf("%s://%s:%d", scheme, host, port) |
| 36 | +// cfg = config.Get() |
| 37 | +// |
| 38 | +// iRegistry registry.Registry |
| 39 | +// instance *registry.ServiceInstance |
| 40 | +// err error |
| 41 | +// |
| 42 | +// id = cfg.App.Name + "_" + scheme + "_" + host + "_" + strconv.Itoa(port) |
| 43 | +// logField logger.Field |
| 44 | +// ) |
| 45 | +// |
| 46 | +// switch cfg.App.RegistryDiscoveryType { |
| 47 | +// case "consul": |
| 48 | +// iRegistry, instance, err = consul.NewRegistry( |
| 49 | +// cfg.Consul.Addr, |
| 50 | +// id, |
| 51 | +// cfg.App.Name, |
| 52 | +// []string{instanceEndpoint}, |
| 53 | +// ) |
| 54 | +// if err != nil { |
| 55 | +// panic(err) |
| 56 | +// } |
| 57 | +// logField = logger.Any("consulAddress", cfg.Consul.Addr) |
| 58 | +// |
| 59 | +// case "etcd": |
| 60 | +// iRegistry, instance, err = etcd.NewRegistry( |
| 61 | +// cfg.Etcd.Addrs, |
| 62 | +// id, |
| 63 | +// cfg.App.Name, |
| 64 | +// []string{instanceEndpoint}, |
| 65 | +// ) |
| 66 | +// if err != nil { |
| 67 | +// panic(err) |
| 68 | +// } |
| 69 | +// logField = logger.Any("etcdAddress", cfg.Etcd.Addrs) |
| 70 | +// |
| 71 | +// case "nacos": |
| 72 | +// iRegistry, instance, err = nacos.NewRegistry( |
| 73 | +// cfg.NacosRd.IPAddr, |
| 74 | +// cfg.NacosRd.Port, |
| 75 | +// cfg.NacosRd.NamespaceID, |
| 76 | +// id, |
| 77 | +// cfg.App.Name, |
| 78 | +// []string{instanceEndpoint}, |
| 79 | +// ) |
| 80 | +// if err != nil { |
| 81 | +// panic(err) |
| 82 | +// } |
| 83 | +// logField = logger.String("nacosAddress", fmt.Sprintf("%v:%d", cfg.NacosRd.IPAddr, cfg.NacosRd.Port)) |
| 84 | +// } |
| 85 | +// |
| 86 | +// if instance != nil { |
| 87 | +// msg := fmt.Sprintf("register service address to %s", cfg.App.RegistryDiscoveryType) |
| 88 | +// logger.Info(msg, logger.String("name", cfg.App.Name), logger.String("endpoint", instanceEndpoint), logger.String("id", id), logField) |
| 89 | +// return iRegistry, instance |
| 90 | +// } |
| 91 | +// |
| 92 | +// return nil, nil |
| 93 | +//} |
0 commit comments