一鍵生成rpc網(wǎng)關(guān)服務(wù)項(xiàng)目代碼,輕松實(shí)現(xiàn)跨語言、跨平臺(tái)的服務(wù)調(diào)用

rpc網(wǎng)關(guān)是一種充當(dāng)客戶端和rpc服務(wù)之間中介的服務(wù),它作為客戶端和rpc服務(wù)通信的橋梁,負(fù)責(zé)將客戶端發(fā)起的請(qǐng)求轉(zhuǎn)發(fā)給rpc服務(wù)端,并將rpc服務(wù)端響應(yīng)返回給客戶端。rpc網(wǎng)關(guān)可以實(shí)現(xiàn)協(xié)議轉(zhuǎn)換、路由轉(zhuǎn)發(fā)、負(fù)載均衡、緩存、限流等功能,從而提高服務(wù)的可用性和性能。
生成rpc網(wǎng)關(guān)服務(wù)代碼
和生成連接rpc服務(wù)代碼
這兩個(gè)功能已經(jīng)集成在生成代碼工具sponge中。
安裝sponge地址:https://github.com/zhufuyi/sponge
安裝完sponge后,執(zhí)行命令打開UI界面:
快速創(chuàng)建rpc網(wǎng)關(guān)項(xiàng)目
創(chuàng)建rpc網(wǎng)關(guān)項(xiàng)目前先準(zhǔn)備一個(gè)proto文件,proto文件要求必須包含路由描述信息和swagger描述信息,usergw.proto文件內(nèi)容如下:
進(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)目代碼了,下載源碼?https://wwzy.lanzoub.com/i4JUj0t2lo1i?。
web框架使用?gin,還包含了swagger文檔、常用的服務(wù)治理功能代碼,構(gòu)建部署腳本等。
生成rpc網(wǎng)關(guān)項(xiàng)目代碼的詳細(xì)演示過程請(qǐng)看B站視頻?https://www.bilibili.com/video/BV1mV4y1D7k9/

在rpc網(wǎng)關(guān)服務(wù)為了連接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ù)的方法,需要把rpc服務(wù)的proto文件復(fù)制到rpc網(wǎng)關(guān)服務(wù)的目錄api/usergw/v1
下。
切換到usergw目錄,執(zhí)行命令:
在瀏覽器打開?http://localhost:8080/apis/swagger/index.html?就可以測(cè)試api接口了。

如果后續(xù)需要添加新的api接口,在proto文件api/usergw/v1/usergw.proto
添加rpc方法和message即可。
如果后續(xù)需要連接其他rpc服務(wù),重復(fù)上面生成連接rpc服務(wù)代碼
步驟即可。