Ping Service

未匹配的标注

与 Micro 也认识了许久,但是一直也没能发生点什么.

小白心想是不是能造点啥呢.

太深奥的咱也造不出来,来个简单的乒乓服务吧.

// main.go
package  main

import (
    "context"

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

type Ping struct{}

func (p *Ping) Pong(ctx context.Context, request *string, response *string) error {
    *response = "pong"
    return nil
}

func main() {
    // create new service
    service := micro.NewService(
        micro.Name("com.taadis.srv"),
    )

    // initialise command line
    service.Init()

    // set the handler
    micro.RegisterHandler(service.Server(),  new(Ping))

    // run service
    service.Run()
}
  • 定义了一个叫做 com.taadis.srv 的服务; (srvservice 的简写)
  • 有一个端点 Ping 结构体的 Pong 函数, 返回一个 “pong” 字符串.

运行起来看看

go run main.go

不出意外的话, 会输出

2020-04-15 15:50:54  level=info Starting [service] com.taadis.srv
2020-04-15 15:50:54  level=info Server [grpc] Listening on [::]:36251
2020-04-15 15:50:54  level=info Registry [mdns] Registering node: com.taadis.srv-fff96af0-3633-42d3-881a-1a94f5b36a5d

然后我们再来调用下这个服务看看

micro call com.taadis.srv Ping.Pong null

不出意外的话, 会输出

"pong"

当然了, 你也可以在 micro web 里调用, 如下:

一个没有太多营养价值的栗子, 小白玩得不亦乐乎.

另附源码 gitee.com/taadis/pingsrv

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
taadis
讨论数量: 0
发起讨论 只看当前版本


暂无话题~