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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go语言高并发与微服务实战_go-micro+gin+etcd微服务实战之服务注册与发现

發布時間:2024/1/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go语言高并发与微服务实战_go-micro+gin+etcd微服务实战之服务注册与发现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在構建微服務時,使用服務發現可以減少配置的復雜性,本文以go-micro為微服務框架,使用etcd作為服務發現服務,使用gin開發golang服務。

使用gin 的原因是gin能夠很好的和go-micro進行集成。

本文主要介紹服務注冊和發現的實現

關于如何搭建etcd服務可以看歷史文章

本文默認以搭建好了etcd服務,服務的地址是:192.168.109.131:12379

如果你搭建好了自己的etcd服務,可以按照上面文章的步驟做,會看到如下界面:

這里我的etcd服務啟用了 3個節點(最少3個)。

開擼

服務注冊

我們預設兩個server,userserver和orderserver

下面開始上代碼:

userserver程序結果如下:

有兩個文件router.go和main.go

main.go代碼如下

main.go實現初始化路由,服務注冊

package

router.go代碼如下

router.go主要用來定義程序的api接口,使用gin開發

package

注冊的代碼就寫好了,啟動userserver,我們在micro的服務界面,可以看到如下效果:

說明我們注冊成功了

服務發現

服務發現,就是從etcd中獲取到我們注冊進去的服務,這樣在調用別的服務時,就不用從配置文件獲取,直接查詢etcd即可。

orderserver我們除了實現服務注冊外,也實現服務發現的功能

orderserver代碼結構如下:

上代碼

main.go代碼如下

package

GetServiceAddr就是服務發現的代碼

首先,使用servers,err :=consulReg.GetService(serviceName)獲取注冊的服務

返回的servers是個slice

然后,使用next := selector.RoundRobin(services)獲取其中一個服務的信息

這里注意:

在老版本中可以直接使用selector.RoundRobin(services),但是在v2版本中需要做個轉換處理:

var

因為使用的數據結構不同,感興趣的可以細看下區別。

router.go代碼如下

package routersimport "gin-gonic/gin"func InitRouters() *gin.Engine {ginRouter := gin.Default()ginRouter.POST("/orders/", func(context *gin.Context) {context.String(200, "get orderinfos")})return ginRouter }

啟動oerderserver 我們就能獲取到userserver的地址,各位可以調試看下效果。

今天go-micro+gin+etcd微服務實戰就介紹完了,是不是很簡單

總結

以上是生活随笔為你收集整理的go语言高并发与微服务实战_go-micro+gin+etcd微服务实战之服务注册与发现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。