解锁新姿势之 Micro Service
经过一夜的促膝长谈, 小白打开了新世界的大门…
对新姿势充满了期待. 绝对没有错别字
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] 小姐姐, 这样你下次干什么坏事或者跑路了她就知道了, 然后她就可以告诉其他姐妹们.
“哦哦, 这样啊. 原来还有其他小姐姐(们)” 小白心里记下了这十分重要的信息.