五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

從0到1,十分鐘搭建一個(gè)微服務(wù)集群,集群由一個(gè)rpc網(wǎng)關(guān)和多個(gè)微服務(wù)組成

2023-04-23 19:20 作者:gopher的院子  | 我要投稿

以一個(gè)簡(jiǎn)單的電商微服務(wù)集群為例,商品詳情頁(yè)面有商品信息、庫(kù)存信息、商品評(píng)價(jià)信息,這些信息數(shù)據(jù)分散在不同的微服務(wù)中,通過rpc網(wǎng)關(guān)服務(wù)組裝所需的數(shù)據(jù)返回給商品詳情頁(yè)面,如下圖所示:


已經(jīng)提前準(zhǔn)備好4個(gè)proto文件(點(diǎn)擊下載),每個(gè)proto文件生成對(duì)應(yīng)一個(gè)服務(wù)代碼:

  • comment.proto文件定義的rpc方法是通過產(chǎn)品id獲取評(píng)論數(shù)據(jù),用來生成評(píng)論rpc服務(wù)代碼。

  • inventory.proto文件定義的rpc方法是通過產(chǎn)品id獲取庫(kù)存數(shù)據(jù),用來生成庫(kù)存rpc服務(wù)代碼。

  • product.proto文件定義的rpc方法是通過產(chǎn)品id獲取詳情數(shù)據(jù),用來生成商品rpc服務(wù)代碼。

  • shopgw.proto文件定義的rpc方法是根據(jù)產(chǎn)品id組裝成商品詳情頁(yè)面所需的數(shù)據(jù),用來生成shop rpc網(wǎng)關(guān)服務(wù)代碼。

接下來使用工具sponge生成4個(gè)服務(wù)代碼,并運(yùn)行起來。

安裝sponge地址:https://github.com/zhufuyi/sponge/blob/main/assets/readme-cn.md

安裝完sponge后,執(zhí)行命令打開UI界面:


十分鐘搭建一個(gè)微服務(wù)集群的詳細(xì)演示過程請(qǐng)看B站視頻?https://www.bilibili.com/video/BV1YM4y127YK/



快速創(chuàng)建和啟動(dòng)評(píng)論、庫(kù)存、產(chǎn)品三個(gè)微服務(wù)

生成評(píng)論、庫(kù)存、產(chǎn)品三個(gè)微服務(wù)代碼

進(jìn)入sponge的UI界面,點(diǎn)擊左邊菜單欄【protobuf】--> 【RPC類型】-->【創(chuàng)建rpc項(xiàng)目】,填寫評(píng)論、庫(kù)存、產(chǎn)品各自參數(shù),分別生成評(píng)論、庫(kù)存、商品服務(wù)代碼。

微服務(wù)框架使用?grpc,還包含了常用的服務(wù)治理功能代碼,構(gòu)建部署腳本等,使用什么數(shù)據(jù)庫(kù)由自己選擇。

快速創(chuàng)建評(píng)論(comment)服務(wù)如下圖所示:


快速創(chuàng)建庫(kù)存(inventory)服務(wù)如下圖所示:


快速創(chuàng)建產(chǎn)品(product)服務(wù)如下圖所示:


打開三個(gè)終端,評(píng)論、庫(kù)存、產(chǎn)品分別對(duì)應(yīng)一個(gè)終端。


啟動(dòng)評(píng)論(comment)服務(wù)

切換到評(píng)論(comment)目錄,執(zhí)行步驟:

(1) 生成pb.go代碼,生成模板代碼,生成測(cè)試代碼

(2) 打開internal/service/comment.go,這是生成的模板代碼,里面有一行提示填寫業(yè)務(wù)邏輯代碼的panic代碼,在這里填寫業(yè)務(wù)邏輯,例如填寫返回值:

(3) 打開configs/comment.yml配置文件,找到grpc,修改下面的port和httpPort兩個(gè)端口值

(4) 編譯和啟動(dòng)comment服務(wù)


啟動(dòng)庫(kù)存(inventory)服務(wù)

切換到庫(kù)存(inventory)目錄,執(zhí)行和comment一樣的步驟:

(1) 生成pb.go代碼,生成模板代碼,生成測(cè)試代碼

(2) 打開internal/service/inventory.go,這是生成的模板代碼,里面有一行提示填寫業(yè)務(wù)邏輯代碼的panic代碼,在這里填寫業(yè)務(wù)邏輯,例如填寫返回值:

(3) 打開configs/inventory.yml配置文件,找到grpc,修改下面的port和httpPort兩個(gè)端口值

(4) 編譯和啟動(dòng)inventory服務(wù)


啟動(dòng)產(chǎn)品(product)服務(wù)

切換到庫(kù)存(product)目錄,執(zhí)行和comment一樣的步驟:

(1) 生成pb.go代碼,生成模板代碼,生成測(cè)試代碼

(2) 打開internal/service/product.go,這是生成的模板代碼,里面有一行提示填寫業(yè)務(wù)邏輯代碼的panic代碼,在這里填寫業(yè)務(wù)邏輯,例如填寫返回值:

(3) 打開configs/product.yml配置文件,找到grpc,修改下面的port和httpPort兩個(gè)端口值

(4) 編譯和啟動(dòng)product服務(wù)

評(píng)論、庫(kù)存、產(chǎn)品三個(gè)微服務(wù)都啟動(dòng)成功后,接下來就可以生成和啟動(dòng)網(wǎng)關(guān)服務(wù)了。


快速生成和啟動(dòng)rpc網(wǎng)關(guān)服務(wù)

進(jìn)入sponge的UI界面,點(diǎn)擊左邊菜單欄【protobuf】--> 【W(wǎng)eb類型】-->【創(chuàng)建rpc網(wǎng)關(guān)項(xiàng)目】,填寫一些參數(shù)就可以生成rpc網(wǎng)關(guān)項(xiàng)目代碼了。

web框架使用?gin,還包含了swagger文檔、常用的服務(wù)治理功能代碼,構(gòu)建部署腳本等。


為了連接評(píng)論、庫(kù)存、產(chǎn)品三個(gè)rpc服務(wù),需要另外生成連接rpc服務(wù)代碼,點(diǎn)擊左邊菜單欄【Public】--> 【生成連接rpc服務(wù)代碼】,填寫參數(shù)后生成代碼,然后把生成的連接rpc服務(wù)代碼移動(dòng)到rpc網(wǎng)關(guān)項(xiàng)目代碼目錄下。


在rpc網(wǎng)關(guān)服務(wù)中為了能夠調(diào)用rpc服務(wù)的方法,需要把評(píng)論、庫(kù)存、產(chǎn)品三個(gè)rpc服務(wù)的proto文件復(fù)制到rpc網(wǎng)關(guān)服務(wù)的目錄api/shopgw/v1下。

切換到shopgw目錄,執(zhí)行步驟:

(1) 生成pb.go代碼,生成注冊(cè)路由代碼,生成模板代碼,生成swagger文檔

(2) 打開internal/service/shopgw_logic.go,這是生成的api接口代碼,在這里填寫業(yè)務(wù)邏輯代碼,填寫下面簡(jiǎn)單業(yè)務(wù)邏輯代碼:


(3) 打開configs/shopgw.yml配置文件,找到grpcClient,添加評(píng)論、庫(kù)存、產(chǎn)品三個(gè)rpc服務(wù)地址:

(4) 編譯和啟動(dòng)shopgw服務(wù)

在瀏覽器打開?http://localhost:8080/apis/swagger/index.html?就可以測(cè)試api接口了。


總結(jié)

使用工具sponge很容易就搭建出一個(gè)微服務(wù)集群,集群中各個(gè)微服務(wù)的常用服務(wù)治理功能也是具備的,例如服務(wù)注冊(cè)與發(fā)現(xiàn)、限流、熔斷、鏈路跟蹤、監(jiān)控、性能分析、資源統(tǒng)計(jì)、CICD等,這些功能統(tǒng)一在yml配置文件開啟或關(guān)閉。只要在proto文件定義好rpc方法的描述信息,后續(xù)的開發(fā)基本都是在生成的模板代碼填寫業(yè)務(wù)邏輯代碼,在生成的測(cè)試代碼中驗(yàn)證業(yè)務(wù)邏輯,使得開發(fā)簡(jiǎn)單化,提高開發(fā)效率,節(jié)省開發(fā)時(shí)間。


這是根據(jù)上面步驟生成的完整源碼:?https://wwzy.lanzoub.com/ilA0m0rz6z9i



從0到1,十分鐘搭建一個(gè)微服務(wù)集群,集群由一個(gè)rpc網(wǎng)關(guān)和多個(gè)微服務(wù)組成的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
阿克陶县| 大足县| 吴忠市| 米脂县| 台北县| 鄯善县| 千阳县| 会东县| 张家界市| 林口县| 临夏县| 三原县| 大姚县| 天等县| 淮阳县| 泰来县| 白山市| 永泰县| 定远县| 缙云县| 康定县| 扬州市| 乌兰察布市| 江津市| 班玛县| 东平县| 思茅市| 宣城市| 沽源县| 莱芜市| 镇远县| 大宁县| 开封市| 墨玉县| 客服| 兴海县| 延吉市| 新竹市| 七台河市| 林西县| 宁国市|