日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go-zero:开箱即用的微服务框架

發(fā)布時(shí)間:2024/4/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go-zero:开箱即用的微服务框架 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

go-zero 是一個(gè)集成了各種工程實(shí)踐的 Web 和 rpc 框架,它的彈性設(shè)計(jì)保障了大并發(fā)服務(wù)端的穩(wěn)定性,并且已經(jīng)經(jīng)過了充分的實(shí)戰(zhàn)檢驗(yàn)。

go-zero 在設(shè)計(jì)時(shí)遵循了 “工具大于約定和文檔” 的理念,所以 go-zero 包含極簡的 API 定義和生成工具 goctl,可以根據(jù)定義的 API 文件一鍵生成 Go、iOS、Android、Kotlin、Dart、TypeScript、JavaScript 代碼,并可直接運(yùn)行。

如上圖所示,不同客戶端的請求都會(huì)先進(jìn)入 go-zero 的 API 端。API 端最主要的作用是通過 ETCD 將對應(yīng)的請求通過 gRPC 協(xié)議轉(zhuǎn)發(fā)到 Service 端。根據(jù)請求的具體內(nèi)容,Service 端負(fù)責(zé)對數(shù)據(jù)進(jìn)行查詢或存儲。如果是查詢請求,go-zero 有內(nèi)置的 API 會(huì)先查詢緩存層,減少數(shù)據(jù)庫的查詢壓力。

由圖可見,API 端和 Service 端中框架已經(jīng)內(nèi)置了非常豐富的功能,在開發(fā)過程中只需要我們填充對應(yīng)的業(yè)務(wù)邏輯,即可輕松實(shí)現(xiàn) CRDU 級的需求。

我們?yōu)槭裁凑f go-zero 是開箱即用的微服務(wù)架構(gòu)呢?不急,我們來盤點(diǎn)下 go-zero 中有哪些強(qiáng)大的特性。

go-zero 適合做微服務(wù)快速開發(fā)的特性

Go-zero 擁有強(qiáng)大的項(xiàng)目腳手架工具 goctl。 goctl 和前端中的 Vue-cli、React-cli 一樣方便。goctl 通過配置文件可以生成 API、rpc 和 model 等相關(guān)代碼。 同時(shí),go-zero 擁有較完備的項(xiàng)目框架。腳手架生成的項(xiàng)目框架足以應(yīng)對常見的需求。CRDU 等需求只需要做 “填空題”,在已生成的代碼上填充必要的業(yè)務(wù)邏輯。 其他緩存鑒權(quán)等需求,框架中也早已內(nèi)置。

另外,go-zero 擁有獨(dú)特的“漸進(jìn)式”框架?!皾u進(jìn)式”是前端 Vue 框架的一大特性,大意是“易于上手,還便于與第三方庫或既有項(xiàng)目整合”。本文借用這個(gè)概念是想表明 go-zero 對項(xiàng)目的入侵性較少,go-zero 生成的代碼可以拆開使用,逐步對老項(xiàng)目進(jìn)行改造。

低耦合的模塊設(shè)計(jì),豐富的中間件,插件和工具:

  • go-zero 中各模塊耦合程度低,我們可以通過文檔中的組件中心尋找合適的中間件或自研中間件。

  • 如果覺得 goctl 不能滿足需求,goctl 還支持 plugin 命令對 goctl 進(jìn)行擴(kuò)展。

  • go-zero 的很多配置文件是自定義語法。 go-zero 還提供了 intellij 和 vscode 插件,提供了語法高亮錯(cuò)誤檢查等編輯增強(qiáng)功能。

goctl 介紹

goctl 是 go-zero 微服務(wù)框架下的代碼生成工具。使用 goctl 可顯著提升開發(fā)效率,讓開發(fā)人員將時(shí)間重點(diǎn)放在業(yè)務(wù)開發(fā)上。

goctl 的命令可歸納為如下幾類:

  • API 命令,快速生成一個(gè) API 服務(wù)

  • rpc 命令,支持 proto 模板生成和 rpc 服務(wù)代碼生成

  • model 命令,目前支持識別 mysql ddl 進(jìn)行 model 層代碼生成

  • plugin 命令,支持針對 API 自定義插件

  • 其他命令,目前是發(fā)布相關(guān)

goctl 的命令眾多,本次涉及到的只是其中 API、rpc 和 model 相關(guān)的基礎(chǔ)命令。

使用 goctl 的基本流程

使用 goctl 生成代碼的流程大致可以分為 4 步:

  • 使用命令 a 生成默認(rèn)的配置文件;

  • 按照業(yè)務(wù)需求編輯該配置文件;

  • 使用命令 b 按照配置文件生成默認(rèn)的代碼文件;

  • 按照業(yè)務(wù)邏輯填充對應(yīng)的代碼文件。

什么情況不適宜使用 go-zero 做微服務(wù)快速開發(fā)?

看完上面的介紹,想必大家對于 go-zero 開發(fā)微服務(wù)已經(jīng)有點(diǎn)躍躍欲試了吧。不過經(jīng)過一番實(shí)踐,我認(rèn)為當(dāng)出現(xiàn)以下情況時(shí),不適宜采用 go-zero 作為開發(fā)微服務(wù)的框架。

當(dāng)前需求與 goctl 的理念相沖突

go-zero 的一大賣點(diǎn)是腳手架工具 goctl,如果定制需求過多可能與 goctl 生成的代碼相沖突。但是如果放棄 goctl 手動(dòng)編寫代碼的話,開發(fā)效率會(huì)大大降低。

舉個(gè)例子,如上圖所示,go-zero 在 Service 端目前只支持 gRPC,在數(shù)據(jù)庫層只支持 Mysql、MongoDB 和 ClickHouse,服務(wù)發(fā)現(xiàn)只支持 ETCD。在這種情況下如果想實(shí)現(xiàn) PostgreSQL 替換 Mysql、Consul 替換 ETCD 等定制操作,goctl 生成的代碼執(zhí)行時(shí)很可能會(huì)出現(xiàn)異常。

希望框架提供的功能非常完善

go-zero 大部分組件是自研,比如 sqlx,httpx 等。這些自研組件滿足 CRDU 的操作綽綽有余,但是與 gorm、gin 等專攻某一方向的開源項(xiàng)目相比還是有非常大的差距的。

所以隨著公司業(yè)務(wù)發(fā)展需求越來越五花八門,當(dāng)前的主要矛盾從“快速開發(fā)”變成“精細(xì)化開發(fā)”時(shí),會(huì)發(fā)現(xiàn)該框架有這樣或那樣的不足。這種情況下就需要提 RP 或自己 fork 一份魔改了。個(gè)人覺得這種情況比 Spring 或 Django 那樣一個(gè)“全家桶” 改動(dòng)起來要省力省心。

總結(jié)

以上是生活随笔為你收集整理的go-zero:开箱即用的微服务框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美激情免费观看 | 麻豆视频观看 | 一级黄色欧美 | 色狠狠av | 看片网址国产福利av中文字幕 | 情欲超 | 国产又粗又猛又色又 | 国产8区 | 91精品久久久久久久久久 | 青青青草国产 | 久久与婷婷 | 五月六月婷婷 | 久久久7777| 国产精品毛片一区二区在线看舒淇 | 夜色一区| 天天想你在线观看完整版电影高清 | 久久发布国产伦子伦精品 | 日本欧美色图 | 五月婷婷,六月丁香 | 国产一区二区三区在线观看免费 | 亚洲欧美国产高清 | 成年丰满熟妇午夜免费视频 | 日韩少妇高潮抽搐 | www网站在线观看 | 97色在线| 中国少妇乱子伦视频播放 | 超碰在线91 | 94av| 91免费.| 欧美黄色一级网站 | 大尺度一区二区 | 全部免费毛片在线播放一个 | 国模无码视频一区二区三区 | 欧美在线视频一区二区三区 | 黑人多p混交群体交乱 | 日本精品一区二区三区视频 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 久久精品视频中文字幕 | 狂野欧美性猛交免费视频 | 熟妇人妻无乱码中文字幕真矢织江 | 91在线观看免费高清完整版在线观看 | 久久成人人人人精品欧 | 真实的国产乱xxxx在线 | 欧洲精品久久一区二区 | 国产精品一区二区6 | 成年男女免费视频 | 欧美日韩精品一区二区在线播放 | 日韩精品电影网 | 毛片天堂 | 日本r级电影在线观看 | 在线天堂一区 | 国产福利视频网站 | 一区二区男女 | 欧美xxxxxhd| 色妞网站| 我爱av好色 | 俺去俺来也在线www色官网 | 永久免费在线观看av | 久久免费视频1 | 影音先锋在线视频观看 | aaa在线 | 国产精品羞羞答答在线观看 | 不卡国产在线 | 国产91丝袜在线观看 | 日批视频免费在线观看 | 日本成人精品 | 久久综合精品国产二区无码不卡 | 国产在线观看不卡 | 国产91精品看黄网站在线观看 | 欧美日韩另类视频 | 国产福利片在线观看 | 亚洲色图国产 | 性欧美熟妇videofreesex | 好好热视频| 捆绑japanhdxxxxvideos | 国产成人精品亚洲日本在线观看 | 欧洲做受高潮欧美裸体艺术 | 51ⅴ精品国产91久久久久久 | 永久在线免费观看 | 三级黄色小视频 | 丝袜熟女一区二区 | 国产亚洲精品电影 | 青青草国产在线播放 | 99热超碰 | 在线aa | 国产黄在线 | 亚洲欧美高清在线 | 国产一级做a爱片久久毛片a | 国产毛片高清 | 黄色网一级片 | 欧美jizz19性欧美 | 一区二区免费在线观看 | 亚洲欧洲日韩在线 | 国产高清精品一区二区三区 | 美女插插视频 | 中文一区在线观看 | 丰满熟妇肥白一区二区在线 | 在线五月天 | 精品国产一区二 |