ソースを参照

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

master
kidjung 4年前
コミット
df5d9f1552

+ 29
- 0
src/broker/modules/AppConfig.go ファイルの表示

@@ -0,0 +1,29 @@
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 ファイルの表示

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

+ 5
- 0
src/broker/modules/manage.go ファイルの表示

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

+ 2
- 2
src/broker/modules/queue.go ファイルの表示

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

+ 1
- 0
src/broker/modules/secure.go ファイルの表示

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

読み込み中…
キャンセル
保存