Go 武林外傳 - 解鎖 Micro 新姿勢之自定義服務

taadis發表於2020-03-24

經過一夜的促膝長談, 小白開啟了新世界的大門…

對新姿勢充滿了期待. 絕對沒有錯別字

Micro 低著頭紅著臉滿足了小白的索求.

微服務圍繞服務展開, 所以我們先試試如何建立一個自己的服務.

新建一個 main.go 檔案, 程式碼如下:

// main.go
package  main

import (
    "log"

    "github.com/micro/go-micro/v2"
)

func main() {
    //  建立一個新的服務,
    //  引數為這個新服務的一些屬性.
    //  比如: 這個新服務的名字叫什麼.
    service  :=  micro.NewService(
        micro.Name("go.micro.custom"),
    )

    // 初始化服務
    service.Init()

    // 執行服務
    if err := service.Run(); err != nil {
        log.Fatalln(err)
    }
}

然後我們直接啟動這個服務:

go run main.go

不出意外的話, 應該會輸出如下資訊:

2020-03-23 13:38:11  level=info Starting [service] go.micro.custom
2020-03-23 13:38:11  level=info Server [grpc] Listening on [::]:29978
2020-03-23 13:38:11  level=info Registry [mdns] Registering node: go.micro.custom-b7cfabd1-75f5-453d-9e93-4489bbefa3ce

可以看出

  • 我們啟動了一個叫做 go.micro.custom 的 [service];
  • [service] 本身需要向外提供服務, 所以同時是一個 Server, 自然需要一個埠, 這裡給了一個隨機埠 29978;
  • 順帶還把這個新服務的名字和埠告訴了 [mdns] 小姐姐.

小白表示, 我跟 Micro 解鎖姿勢, 還告訴 [mdns] 小姐姐, 這是什麼神奇操作, 想想就更加雞動了.

Micro 翻翻白眼幽幽說到: “馬上你就知道了”.

還記得昨天晚上怎麼檢視服務嘛? 快試試.

“當然記得.” 小白麻溜的檢視了下服務.

micro list services

不出意外的話, 應該會輸出如下結果:

go.micro.custom

看到了嘛, 通過 micro.NewService() 函式建立的服務啟動之後, 會自動把服務名稱和埠號告訴 [mdns] 小姐姐, 這樣你下次幹什麼壞事或者跑路了她就知道了, 然後她就可以告訴其他姐妹們.

“哦哦, 這樣啊. 原來還有其他小姐姐(們)” 小白心裡記下了這十分重要的資訊.

本作品採用《CC 協議》,轉載必須註明作者和本文連結

覺得還不錯點個讚唄!

相關文章