package modules //각 Microservice에 대한 정보 저장 노드 type MSnode struct { nodeName string ipAddr string } func (node *MSnode) Getname() string { return node.nodeName } func (node *MSnode) Getipaddr() string { return node.ipAddr } //모든 Microservice정보 저장 type MStable struct { NodeTable map[string]MSnode } func (manager *MStable) getIpaddr(nodename string) (string, bool) { //해당 이름의 노드이름이 존재하는지 확인 node, exists := manager.NodeTable[nodename] //존재하지 않는 경우 nil리턴 if !exists { return "", false } else { return node.ipAddr, true } } func (manager *MStable) add_microservice(node MSnode) bool { //삽입 전 존재여부 확인 _, exists := manager.NodeTable[node.Getname()] if exists { return false } else { manager.NodeTable[node.Getname()] = node return true } } func (manager *MStable) remove_microservice(nodename string) bool { //삭제 전 존재여부 확인 _, exists := manager.NodeTable[nodename] if exists { delete(manager.NodeTable, nodename) return true } else { return false } }