W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
縮短從需求到上線的距離
go-zero 是一個集成了各種工程實踐的 web 和 rpc 框架。通過彈性設計保障了大并發(fā)服務端的穩(wěn)定性,經受了充分的實戰(zhàn)檢驗。
go-zero 包含極簡的 API 定義和生成工具 goctl,可以根據定義的 api 文件一鍵生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代碼,并可直接運行。
使用 go-zero 的好處:
18 年初,我們決定從 ?Java+MongoDB
? 的單體架構遷移到微服務架構,經過仔細思考和對比,我們決定:
對于微服務框架的設計,我們期望保障微服務穩(wěn)定性的同時,也要特別注重研發(fā)效率。所以設計之初,我們就有如下一些準則:
我們經歷不到半年時間,徹底完成了從 ?Java+MongoDB
? 到 ?Golang+MySQL
? 為主的微服務體系遷移,并于 18 年 8 月底完全上線,穩(wěn)定保障了業(yè)務后續(xù)迅速增長,確保了整個服務的高可用。
go-zero 是一個集成了各種工程實踐的包含 web 和 rpc 框架,有如下主要特點:
在項目目錄下通過如下命令安裝:
GO111MODULE=on GOPROXY=https://goproxy.cn/,direct go get -u github.com/zeromicro/go-zero
1、完整示例請查看
2、安裝 goctl 工具
goctl 讀作 go control,不要讀成 go C-T-L。goctl 的意思是不要被代碼控制,而是要去控制它。其中的 go 不是指 golang。
GO111MODULE=on GOPROXY=https://goproxy.cn/,direct go get -u github.com/zeromicro/go-zero/tools/goctl
如果使用 go1.16 版本, 可以使用 ?go install
? 命令安裝
GOPROXY=https://goproxy.cn/,direct go install github.com/zeromicro/go-zero/tools/goctl@latest
確保 goctl 可執(zhí)行
3、快速生成 api 服務
goctl api new greet
cd greet
go mod init
go mod tidy
go run greet.go -f etc/greet-api.yaml
默認偵聽在 8888 端口(可以在配置文件里修改),可以通過 curl 請求:
curl -i http://localhost:8888/from/you
返回如下:
HTTP/1.1 200 OK
Content-Type: application/json
Date: Thu, 22 Oct 2020 14:03:18 GMT
Content-Length: 14
{"message":""}
編寫業(yè)務代碼:
servicecontext.go
? 里面?zhèn)鬟f依賴給 ?logic
?,比如 mysql, redis 等
get/post/put/delete
? 等請求對應的 ?logic
?里增加業(yè)務處理邏輯4、可以根據 api 文件生成前端需要的 Java, TypeScript, Dart, JavaScript 代碼
goctl api java -api greet.api -dir greet
goctl api dart -api greet.api -dir greet
...
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: