99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

go-zero 單體服務

2022-04-25 17:47 更新

前言

由于go-zero集成了web/rpc于一體,社區(qū)有部分小伙伴會問我,go-zero的定位是否是一款微服務框架,答案是不止于此, go-zero雖然集眾多功能于一身,但你可以將其中任何一個功能獨立出來去單獨使用,也可以開發(fā)單體服務, 不是說每個服務上來就一定要采用微服務的架構的設計,這點大家可以看看作者(kevin)的第四期開源說 ,其中對此有詳細的講解。

創(chuàng)建greet服務

$ mkdir go-zero-demo
$ cd go-zero-demo
$ go mod init go-zero-demo
$ goctl api new greet
$ go mod tidy
Done.

說明:如無 cd 改變目錄的操作,所有操作均在 go-zero-demo 目錄執(zhí)行

查看一下?greet?服務的目錄結構

$ tree greet
greet
├── etc
│   └── greet-api.yaml
├── greet.api
├── greet.go
└── internal
    ├── config
    │   └── config.go
    ├── handler
    │   ├── greethandler.go
    │   └── routes.go
    ├── logic
    │   └── greetlogic.go
    ├── svc
    │   └── servicecontext.go
    └── types
        └── types.go

由以上目錄結構可以觀察到,?greet?服務雖小,但"五臟俱全"。接下來我們就可以在?greetlogic.go?中編寫業(yè)務代碼了。

編寫邏輯

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

啟動并訪問服務

  • 啟動服務

$ cd greet
$ go run greet.go -f etc/greet-api.yaml

輸出如下,服務啟動并偵聽在8888端口:

Starting server at 0.0.0.0:8888...

  • 訪問服務

$ curl -i -X GET http://localhost:8888/from/you

  • 返回如下:

HTTP/1.1 200 OK
Content-Type: application/json
Date: Sun, 07 Feb 2021 04:31:25 GMT
Content-Length: 27

{"message":"Hello go-zero"}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號