Project Moscato Team Messaging Middleware Implemetation Message Middleware by Golang Operate as Secure, Effectively
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

manage.go 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package modules
  2. //각 Microservice에 대한 정보 저장 노드
  3. type MSnode struct {
  4. nodeName string
  5. ipAddr string
  6. }
  7. func (node *MSnode) Getname() string {
  8. return node.nodeName
  9. }
  10. func (node *MSnode) Getipaddr() string {
  11. return node.ipAddr
  12. }
  13. //모든 Microservice정보 저장
  14. type MStable struct {
  15. NodeTable map[string]MSnode
  16. }
  17. func (manager *MStable) getIpaddr(nodename string) (string, bool) {
  18. //해당 이름의 노드이름이 존재하는지 확인
  19. node, exists := manager.NodeTable[nodename]
  20. //존재하지 않는 경우 nil리턴
  21. if !exists {
  22. return "", false
  23. } else {
  24. return node.ipAddr, true
  25. }
  26. }
  27. func (manager *MStable) add_microservice(node MSnode) bool {
  28. //삽입 전 존재여부 확인
  29. _, exists := manager.NodeTable[node.Getname()]
  30. if exists {
  31. return false
  32. } else {
  33. manager.NodeTable[node.Getname()] = node
  34. return true
  35. }
  36. }
  37. func (manager *MStable) remove_microservice(nodename string) bool {
  38. //삭제 전 존재여부 확인
  39. _, exists := manager.NodeTable[nodename]
  40. if exists {
  41. delete(manager.NodeTable, nodename)
  42. return true
  43. } else {
  44. return false
  45. }
  46. }