Procházet zdrojové kódy

[revise] 의존성 주입 AppConfig.go 분리

master
kidjung před 4 roky
rodič
revize
df5d9f1552

+ 29
- 0
src/broker/modules/AppConfig.go Zobrazit soubor

1
+package modules
2
+
3
+import (
4
+	"github.com/facebookgo/inject"
5
+)
6
+
7
+type AppConfig struct {
8
+	application *Moscato
9
+}
10
+
11
+func (app *AppConfig) config() *Moscato {
12
+	var graph inject.Graph
13
+
14
+	err := graph.Provide(
15
+		&inject.Object{Value: NewMStable()},
16
+		&inject.Object{Value: app.application},
17
+		&inject.Object{Value: NewSecurity()})
18
+	if err != nil {
19
+		println(err)
20
+		return nil
21
+	}
22
+
23
+	err = graph.Populate()
24
+	if err != nil {
25
+		println(err)
26
+		return nil
27
+	}
28
+	return app.application
29
+}

+ 20
- 38
src/broker/modules/init.go Zobrazit soubor

4
 	"encoding/json"
4
 	"encoding/json"
5
 	"errors"
5
 	"errors"
6
 	"fmt"
6
 	"fmt"
7
-	"github.com/facebookgo/inject"
8
 	"github.com/fatih/color"
7
 	"github.com/fatih/color"
9
 	"log"
8
 	"log"
10
 	"net"
9
 	"net"
30
 type Moscato struct {
29
 type Moscato struct {
31
 	queue               MsgQueue
30
 	queue               MsgQueue
32
 	MicroServiceManager NodeManager `inject:""`
31
 	MicroServiceManager NodeManager `inject:""`
33
-	match_mng           match_manager
32
+	MatchingManager     match_manager
34
 	SecureManager       SecurityManager `inject:""`
33
 	SecureManager       SecurityManager `inject:""`
35
 }
34
 }
36
 
35
 
63
 
62
 
64
 			}
63
 			}
65
 		}()
64
 		}()
66
-		reply.CompleteLog = "received completely"
65
+		reply.CompleteLog = "received"
67
 	case PM:
66
 	case PM:
68
 		var msg PublishMsg
67
 		var msg PublishMsg
69
 		err := json.Unmarshal(args.JsonMsg, &msg)
68
 		err := json.Unmarshal(args.JsonMsg, &msg)
77
 
76
 
78
 			}
77
 			}
79
 		}()
78
 		}()
80
-		reply.CompleteLog = "PM received completely"
79
+		reply.CompleteLog = "PM received"
81
 	case SM:
80
 	case SM:
82
 		var msg SubscriptionMsg
81
 		var msg SubscriptionMsg
83
 		err := json.Unmarshal(args.JsonMsg, &msg)
82
 		err := json.Unmarshal(args.JsonMsg, &msg)
90
 
89
 
91
 			}
90
 			}
92
 		}()
91
 		}()
93
-		reply.CompleteLog = "received completely"
92
+		reply.CompleteLog = "received"
94
 	case RM:
93
 	case RM:
95
 		var msg RegisterMsg
94
 		var msg RegisterMsg
96
 		err := json.Unmarshal(args.JsonMsg, &msg)
95
 		err := json.Unmarshal(args.JsonMsg, &msg)
103
 				fmt.Println(err)
102
 				fmt.Println(err)
104
 			}
103
 			}
105
 		}()
104
 		}()
106
-		reply.CompleteLog = "RM received completely"
105
+		reply.CompleteLog = "RM received"
107
 	case WM:
106
 	case WM:
108
 		var msg WithdrawMsg
107
 		var msg WithdrawMsg
109
 		err := json.Unmarshal(args.JsonMsg, &msg)
108
 		err := json.Unmarshal(args.JsonMsg, &msg)
116
 
115
 
117
 			}
116
 			}
118
 		}()
117
 		}()
119
-		reply.CompleteLog = "received completely"
118
+		reply.CompleteLog = "received"
120
 	default:
119
 	default:
121
 		return errors.New("message type Error: Not registered message type")
120
 		return errors.New("message type Error: Not registered message type")
122
 	}
121
 	}
141
 	case KSM: //Key share msg
140
 	case KSM: //Key share msg
142
 
141
 
143
 	case PM: //Publish msg
142
 	case PM: //Publish msg
144
-		moscato.queue.push(msg.(PublishMsg))
145
 		log.Println("PM received")
143
 		log.Println("PM received")
144
+		moscato.queue.push(msg.(PublishMsg))
146
 
145
 
147
 	case SM: //Subscription msg
146
 	case SM: //Subscription msg
148
-		moscato.match_mng.add_subscription(msg.(*SubscriptionMsg))
147
+		moscato.MatchingManager.add_subscription(msg.(*SubscriptionMsg))
149
 
148
 
150
 	case RM: //Register msg
149
 	case RM: //Register msg
150
+		log.Println("RM received")
151
 		var newMsg RegisterMsg
151
 		var newMsg RegisterMsg
152
 		newMsg = msg.(RegisterMsg)
152
 		newMsg = msg.(RegisterMsg)
153
 
153
 
162
 
162
 
163
 		addr, _ := moscato.MicroServiceManager.GetIpaddr(newMsg.From)
163
 		addr, _ := moscato.MicroServiceManager.GetIpaddr(newMsg.From)
164
 		moscato.SecureManager.RegKey(newMsg)
164
 		moscato.SecureManager.RegKey(newMsg)
165
-		fmt.Println(moscato.SecureManager.GetNodeKey(newMsg.From))
166
-		fmt.Println(addr)
165
+		fmt.Println("Registered microservice: address", addr,
166
+			"/ key", moscato.SecureManager.GetNodeKey(newMsg.From))
167
 
167
 
168
 		// ackRM 메세지 전송
168
 		// ackRM 메세지 전송
169
 		go moscato.Send2MS(addr, newMsg)
169
 		go moscato.Send2MS(addr, newMsg)
170
 
170
 
171
-		log.Println("RM received")
172
-
173
 	case WM: //Withdraw msg
171
 	case WM: //Withdraw msg
174
 		moscato.MicroServiceManager.RemoveMicroservice(msg.(*WithdrawMsg).From)
172
 		moscato.MicroServiceManager.RemoveMicroservice(msg.(*WithdrawMsg).From)
175
 
173
 
202
 	}
200
 	}
203
 	//log.Println(reply.CompleteLog) //잘 받았는지 확인 해줌
201
 	//log.Println(reply.CompleteLog) //잘 받았는지 확인 해줌
204
 	// 마이크로 서비스에게 받은 메시지는 노란색으로 출력
202
 	// 마이크로 서비스에게 받은 메시지는 노란색으로 출력
205
-	color.Yellow(reply.CompleteLog)
203
+	log.Println(reply.CompleteLog)
206
 }
204
 }
207
 
205
 
208
 func (moscato *Moscato) Run() {
206
 func (moscato *Moscato) Run() {
209
 
207
 
210
-	var graph inject.Graph
211
-
212
-	err := graph.Provide(
213
-		&inject.Object{Value: NewMStable()},
214
-		&inject.Object{Value: moscato},
215
-		&inject.Object{Value: NewSecurity()})
216
-	if err != nil {
217
-		fmt.Println(err)
218
-		return
219
-	}
220
-
221
-	err = graph.Populate()
222
-	if err != nil {
223
-		fmt.Println(err)
224
-		return
225
-	}
208
+	config := AppConfig{moscato}
209
+	config.config()
226
 
210
 
227
 	//모스카토 구조체 변수 초기화
211
 	//모스카토 구조체 변수 초기화
228
 	receiver := Receiver{moscato: moscato}
212
 	receiver := Receiver{moscato: moscato}
229
-	err = moscato.queue.queue_init()
213
+	err := moscato.queue.queue_init()
230
 	if err != nil {
214
 	if err != nil {
231
 		fmt.Println(err)
215
 		fmt.Println(err)
232
 		return
216
 		return
233
 	}
217
 	}
234
 
218
 
235
-	//moscato.MicroServiceManager = NewMStable()
236
-
237
 	//go routine -> matching 동작
219
 	//go routine -> matching 동작
238
-	go moscato.match_mng.matching(&moscato.queue)
220
+	go moscato.MatchingManager.matching(&moscato.queue)
239
 	go moscato.CheckQueue()
221
 	go moscato.CheckQueue()
240
 
222
 
241
 	//rpc 등록 -> Receive 함수
223
 	//rpc 등록 -> Receive 함수
245
 		return
227
 		return
246
 	}
228
 	}
247
 
229
 
248
-	Listen()
249
-	log.Println("listen complete.")
230
+	go Listen()
231
+	color.Blue("initializing complete.")
250
 	fmt.Scanln()
232
 	fmt.Scanln()
251
 }
233
 }
252
 
234
 
257
 	if err1 != nil {
239
 	if err1 != nil {
258
 		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err1))
240
 		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err1))
259
 	}
241
 	}
260
-	/*defer l1.Close()
242
+	defer l.Close()
261
 
243
 
262
-	if err2 != nil {
244
+	/*if err2 != nil {
263
 		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err2))
245
 		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err2))
264
 	}
246
 	}
265
 	defer l2.Close()*/
247
 	defer l2.Close()*/

+ 5
- 0
src/broker/modules/manage.go Zobrazit soubor

1
 package modules
1
 package modules
2
 
2
 
3
+import (
4
+	"fmt"
5
+)
6
+
3
 //각 Microservice에 대한 정보 저장 노드
7
 //각 Microservice에 대한 정보 저장 노드
4
 type MSNode struct {
8
 type MSNode struct {
5
 	nodeName string
9
 	nodeName string
25
 }
29
 }
26
 
30
 
27
 func NewMStable() *MStable {
31
 func NewMStable() *MStable {
32
+	defer fmt.Println("node manager setting complete.")
28
 	return &MStable{NodeTable: make(map[string]MSNode)}
33
 	return &MStable{NodeTable: make(map[string]MSNode)}
29
 }
34
 }
30
 
35
 

+ 2
- 2
src/broker/modules/queue.go Zobrazit soubor

2
 
2
 
3
 import (
3
 import (
4
 	"errors"
4
 	"errors"
5
-	"github.com/fatih/color"
5
+	"fmt"
6
 )
6
 )
7
 
7
 
8
 type MsgQueue struct {
8
 type MsgQueue struct {
25
 	} else if mq.queue == nil {
25
 	} else if mq.queue == nil {
26
 		mq.queue = make(chan MsgUnit, 1000)
26
 		mq.queue = make(chan MsgUnit, 1000)
27
 		//log.Println("queue is initialized.")
27
 		//log.Println("queue is initialized.")
28
-		color.Blue("queue is initialized.")
28
+		fmt.Println("queue is initialized.")
29
 		return nil
29
 		return nil
30
 	} else {
30
 	} else {
31
 		close(mq.queue)
31
 		close(mq.queue)

+ 1
- 0
src/broker/modules/secure.go Zobrazit soubor

12
 
12
 
13
 func NewSecurity() *Security {
13
 func NewSecurity() *Security {
14
 	security := &Security{map[string]string{}}
14
 	security := &Security{map[string]string{}}
15
+	fmt.Println("security setting complete.")
15
 	return security
16
 	return security
16
 }
17
 }
17
 
18
 

Načítá se…
Zrušit
Uložit