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
的服务; (srv
是service
的简写) - 有一个端点
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 里调用, 如下:
一个没有太多营养价值的栗子, 小白玩得不亦乐乎.