Go 武林外传 - 解锁新姿势之 Micro Service

写在开头, 为了更好的编写和翻阅 《Go 武林外传》决定迁移本系列文章到 “文档文章” 《Go 武林外传》

经过一夜的促膝长谈, 小白打开了新世界的大门…

对新姿势充满了期待. 绝对没有错别字

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 协议》,转载必须注明作者和本文链接

觉得还不错点个赞呗!

讨论数量: 1

写的挺不错的,但是有点小建议,每篇文章都挺短的,而且文章链接都在开头,每次看下一篇的时候我都要翻到顶部 :sweat_smile:

3天前 评论
taadis (楼主) 3天前
taadis (楼主) 1天前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!