前言

由于go-zero集成了web/rpc于一体,社区有部分小伙伴会问我,go-zero的定位是否是一款微服务框架, 答案是否定的,go-zero虽然集众多功能于一身,但你可以将其中任何一个功能独立出来去单独使用,也可以开发单体服务, 不是说每个服务上来就一定要采用微服务的架构的设计,这点大家可以看看作者(kevin)的第四期开源说 ,其中对此有详细的讲解。

创建greet服务

  1. cd ~/go-zero-demo
  2. goctl api new greet

查看一下greet服务的结构

  1. cd greet $ tree

image.png

  1. tree /f

image.png
由以上目录结构可以观察到,greet服务虽小,但”五脏俱全”。接下来我们就可以在greetlogic.go中编写业务代码了。

编写逻辑

  1. $ vim ~/go-zero-demo/greet/internal/logic/greetlogic.go
  1. func (l *GreetLogic) Greet(req types.Request) (*types.Response, error) {
  2. return &types.Response{
  3. Message: "Hello go-zero",
  4. }, nil
  5. }

启动并访问服务

  • 启动服务

    1. $ cd ~/go-zero-demo/greet
    2. $ go run greet.go -f etc/greet-api.yaml

    image.png
    image.png
    image.png
    image.png

    1. Starting server at 0.0.0.0:8888...
  • 访问服务

    1. $ curl -i -X GET \
    2. http://localhost:8888/from/you
    1. HTTP/1.1 200 OK
    2. Content-Type: application/json
    3. Date: Sun, 07 Feb 2021 04:31:25 GMT
    4. Content-Length: 27
    5. {"message":"Hello go-zero"}

    http://127.0.0.1:8888/from/you
    image.png
    image.png

源码

greet源码

猜你想看

原文链接

https://go-zero.dev/cn/monolithic-service.html