精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go 語言微服務框架 Kratos 服務注冊與發現

開發 前端
Go 語言微服務框架 Kratos 服務注冊與發現,支持多種注冊中心,本文我們以 Consul 為例,介紹 Kratos 項目怎么實現服務注冊與發現。

1.介紹

Go 語言微服務框架 Kratos 服務注冊與發現,支持多種注冊中心,本文我們以 Consul 為例,介紹 Kratos 項目怎么實現服務注冊與發現。

以 blog 項目作為 RPC 服務端,我們再創建一個 blog-client 項目作為 RPC 客戶端。

2.服務注冊

我們通過改造 blog 項目的代碼,將 blog 服務作為 RPC 服務端,注冊到 Consul 中。

創建 Consul 注冊中心

在 blog/internal 目錄中,創建 registry 目錄,并創建 consul.go 和 registry.go 文件。

編寫 blog/internal/registry/consul.go 文件。

func NewConsulRegistry(c *conf.Registry) *consul.Registry {
 client, err := api.NewClient(&api.Config{
  Address: c.Consul.Addr,
  Scheme:  c.Consul.Schema,
 })
 if err != nil {
  panic(err)
 }
 return consul.New(client)
}

編寫 blog/internal/registry/registry.go 文件。

var ProviderSet = wire.NewSet(NewConsulRegistry)

編寫 blog/cmd/blog/wire.go 文件。

func wireApp(*conf.Server, *conf.Data, *conf.Registry, log.Logger) (*kratos.App, func(), error) {
 panic(wire.Build(server.ProviderSet, data.ProviderSet, biz.ProviderSet, service.ProviderSet, registry.ProviderSet, newApp))
}

wire 生成文件

cd /root/go/src/blog/cmd/blog
wire

編寫 blog/cmd/blog/main.go 文件。

func newApp(conf *conf.Server, logger log.Logger, gs *grpc.Server, hs *http.Server, registry *consul.Registry) *kratos.App {
 return kratos.New(
  kratos.ID(id),
  kratos.Name(conf.Name),
  kratos.Version(conf.Version),
  kratos.Metadata(map[string]string{}),
  kratos.Logger(logger),
  kratos.Server(
   gs,
   hs,
  ),
  kratos.Registrar(registry),
 )
}

運行項目

cd /root/go/src/blog/cmd/blog
kratos run

訪問 consul UI

在瀏覽器中訪問 http://IP:8500/ui/dc1/services,檢查 blog 服務的注冊狀態。

3.服務發現

使用 kratos 創建一個客戶端項目 blog-client。

創建 Consul 注冊中心

在 blog-client/internal 目錄中,創建 registry 目錄,并創建 consul.go 和 registry.go 文件。

編寫 blog-client/internal/registry/consul.go 文件。

func NewConsulRegistry(c *conf.Registry) *consul.Registry {
 client, err := api.NewClient(&api.Config{
  Address: c.Consul.Addr,
  Scheme:  c.Consul.Schema,
 })
 if err != nil {
  panic(err)
 }
 return consul.New(client)
}

編寫 blog-client/internal/registry/registry.go 文件。

var ProviderSet = wire.NewSet(NewConsulRegistry)

創建 RPC 客戶端

在 blog-client/internal 目錄中,創建 client 目錄,并創建 blog_client.go 和 client.go 文件。

編寫 blog-client/internal/client/blog_client.go 文件。

func NewBlogClient(registry *consul.Registry, logger log.Logger) (v1.UserClient, error) {
 conn, err := grpc.DialInsecure(
  context.Background(),
  grpc.WithEndpoint("discovery:///blog"),
  grpc.WithDiscovery(registry),
  grpc.WithMiddleware(
   recovery.Recovery(),
  ),
  grpc.WithNodeFilter(
   filter.Version("1.0.0")),
 )
 if err != nil {
  log.NewHelper(logger).WithContext(context.Background()).Errorw("err", err)
  return nil, err
 }
 return v1.NewUserClient(conn), nil
}

編寫 blog-client/internal/client/client.go 文件。

var ProviderSet = wire.NewSet(NewBlogClient)

拷貝 pb 文件

拷貝 /root/go/src/blog/api/user 目錄,粘帖到 /root/go/src/blog-client/api 目錄。

創建 domain 和 usecase 層

創建 blog-client/internal/biz/user.go 文件。

type User struct {
 Id       int64 `xorm:"autoincr"`
 Name     string
 Email    string
 Password string
 Created  int64 `xorm:"created"`
 Updated  int64 `xorm:"updated"`
}

type UserUsecase struct {
 rpcClient v1.UserClient
}

func NewUserUsecase(client v1.UserClient) *UserUsecase {
 return &UserUsecase{
  rpcClient: client,
 }
}

func (u *UserUsecase) GetUser(ctx context.Context, user *User) (reply *v1.GetUserReply, err error) {
 req := &v1.GetUserRequest{
  Id: user.Id,
 }
 reply, err = u.rpcClient.GetUser(ctx, req)
 if err != nil {
  return nil, err
 }
 return
}

編寫 blog-client/internal/biz/biz.go 文件。

var ProviderSet = wire.NewSet(NewUserUsecase)

生成 server 源碼

cd /root/go/src/blog-client
kratos proto server api/user/v1/user.proto

編寫生成文件 internal/service/user.go。

func (s *UserService) GetUser(ctx context.Context, req *v1.GetUserRequest) (*v1.GetUserReply, error) {
 user := &biz.User{
  Id: req.Id,
 }
 reply, err := s.userUcase.GetUser(ctx, user)
 if err != nil {
  return nil, err
 }
 return &v1.GetUserReply{
  Name: reply.Name,
 }, nil
}

編寫 blog-client/internal/service/service.go 文件。

var ProviderSet = wire.NewSet(NewUserService)

添加 wire 提供者

編寫 blog-client/cmd/blog-client/wire.go 文件。

func wireApp(*conf.Server, *conf.Data, *conf.Registry, log.Logger) (*kratos.App, func(), error) {
 panic(wire.Build(server.ProviderSet, biz.ProviderSet, registry.ProviderSet, service.ProviderSet, client.ProviderSet, newApp))
}

wire 生成文件

cd /root/go/src/blog-client/cmd/blog-client
wire

運行項目

cd /root/go/src/blog-client/cmd/blog
kratos run

curl 請求示例

curl -H "Content-Type: application/json" -X GET http://192.168.110.209:8001/user/get/1
{"name":"frank"}

4.總結

本文我們通過示例代碼,介紹 Kratos 項目怎么實現服務注冊與發現。

需要注意的是,RPC 服務端和 RPC 客戶端的端口不能相同。

責任編輯:武曉燕 來源: Golang語言開發棧
相關推薦

2025-08-04 01:22:00

Go 語言微服務Kratos

2024-12-23 00:22:55

2025-01-13 00:00:07

Go語言微服務

2024-12-30 00:38:23

Go語言微服務

2022-01-16 23:10:40

語言服務注冊

2025-10-20 07:17:10

Go語言微服務

2022-06-17 12:05:25

微服務注冊

2025-01-06 00:00:01

KratosGo微服務

2017-06-25 13:33:25

Spring Clou微服務架構

2022-04-26 05:36:42

服務治理模式

2015-12-25 11:00:52

Zookeeper的Python

2021-04-20 17:20:59

SpringColud EurekaNetflix開發

2023-09-07 23:25:34

微服務服務發現

2023-06-02 08:33:43

微服務架構服務注冊

2023-11-29 16:21:30

Kubernetes服務注冊

2022-08-14 07:04:44

微服務架構設計模式

2022-01-26 09:36:53

Consul語言微服務

2018-09-14 09:23:03

微服務服務集成

2023-12-13 07:19:01

微服務架構Golang

2021-01-14 09:55:21

Java微服務Go
點贊
收藏

51CTO技術棧公眾號

亚洲综合av影视| 日韩欧美在线一区二区三区| 九九九热999| 国产女主播喷水视频在线观看| 精品国产午夜| 欧美日韩精品三区| 日本免费a视频| 男人的天堂在线| 精品无码三级在线观看视频| 久久久久久久久中文字幕| 在线 丝袜 欧美 日韩 制服| 性欧美video另类hd尤物| 亚洲成人自拍网| 日本午夜精品电影| www.亚洲黄色| 免费久久99精品国产| 欧美精品在线视频观看| 大又大又粗又硬又爽少妇毛片| 在线免费观看亚洲| 欧美性xxxx在线播放| 伊人久久大香线蕉综合75| 欧美视频在线观看一区二区三区| 秋霞电影网一区二区| 久久免费视频网| 日本成人免费在线观看| 日韩福利视频一区| 欧美一区二区三区精品| 亚洲精品怡红院| 爱看av在线入口| 综合网在线视频| 日本午夜精品电影| 欧美色欧美亚洲另类七区| 欧美成人国产精品一区二区| 亚洲一区 二区| 日韩大胆视频| 成人sese在线| 亚洲最大的成人网| 亚洲一区中文字幕永久在线| 可以看av的网站久久看| 国产做受高潮69| 日韩在线观看视频一区二区| 成人三级视频| 亚洲欧美国产精品专区久久| 国产欧美视频一区| 麻豆精品国产| 欧美精品高清视频| 色一情一区二区| 欧美日韩在线精品一区二区三区激情综合 | 久久天堂电影网| www.日本高清视频| 国产精品一区二区av日韩在线 | 国产精品永久免费在线| 亚洲国产成人无码av在线| 亚洲激情不卡| 久久久久久久久久亚洲| 国产精选第一页| 国产精品chinese| 九九热视频这里只有精品| 免费看特级毛片| 亚洲澳门在线| 精品国产一区二区三区久久| 大地资源高清在线视频观看| 日韩欧美视频| xxxxx91麻豆| 污污的视频在线免费观看| 日韩欧美1区| 久久伊人精品天天| 欧美丰满艳妇bbwbbw| 综合精品久久| 欧美激情一区二区三区高清视频| 久久免费播放视频| 免费一级特黄特色大片| 亚洲不卡视频| 欧美大片顶级少妇| 年下总裁被打光屁股sp| 国产精品x8x8一区二区| 亚洲第一页自拍| 右手影院亚洲欧美| 成人羞羞动漫| 久久久精品日本| 麻豆成人在线视频| 国产欧美日本| 国产精品国产三级国产aⅴ浪潮| 中文字幕日韩经典| 国产成人综合视频| 国外成人在线视频网站| 男操女在线观看| 国产精品久久久久影院色老大| 亚洲欧美日韩不卡| 丁香花在线电影| 色噜噜久久综合| www.色就是色.com| 精品综合久久88少妇激情| 亚洲欧美国内爽妇网| 一级性生活免费视频| 欧美久久视频| 国产精品99一区| 国内老熟妇对白xxxxhd| 久久免费偷拍视频| 国产精品无码乱伦| 亚洲精品**中文毛片| 欧美丰满美乳xxx高潮www| 深田咏美中文字幕| 99久久婷婷| 欧美一级淫片播放口| 国产精品女人久久久| 91在线一区二区三区| 亚洲人久久久| 无遮挡爽大片在线观看视频| 在线不卡一区二区| wwwwww日本| 欧美日本免费| 国产有码在线一区二区视频| 人妻妺妺窝人体色www聚色窝| 国产精品欧美综合在线| 人妻精品无码一区二区三区 | 在线观看不卡一区| 伊人伊成久久人综合网小说| 国产一二三四在线视频| 日韩有吗在线观看| 亚洲男人天堂网| 逼特逼视频在线观看| 日韩中文欧美| 97激碰免费视频| 亚洲一级黄色大片| 成人动漫在线一区| 亚洲人成网站在线播放2019| 国产直播在线| 日韩一级在线观看| 欧美另类z0zx974| 欧美日韩一区二区三区四区在线观看| 91av免费观看91av精品在线| 一卡二卡三卡在线观看| 91视视频在线观看入口直接观看www | 久久亚洲精品成人| 亚洲GV成人无码久久精品 | 黑人巨大精品欧美一区二区| 污网站在线免费| 蜜桃成人av| 国产69精品久久久久9| 97精品人妻一区二区三区| 97aⅴ精品视频一二三区| 久久99久久99精品蜜柚传媒| 欧洲中文在线| 欧美一区日韩一区| 一级在线观看视频| 老牛影视一区二区三区| 极品尤物一区二区三区| 欧美卡一卡二| 欧美一级片免费看| 黄色一级片一级片| 久久久久99| 精品一区在线播放| eeuss鲁一区二区三区| 精品国产成人在线影院| 外国一级黄色片| 狠狠久久亚洲欧美| 亚洲三区在线| 波多野结衣免费观看| 天堂电影一区| 亚洲国产高潮在线观看| 国产亚洲成人av| 成人午夜在线免费| 在线观看福利一区| 成人综合日日夜夜| 日韩三级影视基地| 中文字幕资源网| 国产精品水嫩水嫩| 国内自拍视频网| 日韩大片在线播放| 亚洲aⅴ日韩av电影在线观看| 美女国产在线| 8x8x8国产精品| 免费成年人视频在线观看| 久久精品国产精品亚洲精品| 亚洲欧美日韩国产yyy| **国产精品| 欧美成人中文字幕在线| 一本色道久久综合精品婷婷| 中文字幕日韩一区二区| 日本中文字幕影院| 欧美一区二区三区另类| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 国模吧精品人体gogo| 色偷偷久久人人79超碰人人澡| 蜜桃传媒一区二区亚洲| 久久99精品久久久| 国产乱子伦精品视频| 日韩系列在线| 国产精品成人免费视频| 天堂资源在线中文| 欧美一区二区黄色| 日本学生初尝黑人巨免费视频| www.在线欧美| 可以免费观看av毛片| 激情综合网站| 亚洲一区美女视频在线观看免费| 国产剧情在线| 亚洲欧美综合区自拍另类| 久久午夜鲁丝片| 亚洲欧美日韩一区| 好吊色视频一区二区三区| 久久精品男女| 制服诱惑一区| 国产亚洲一区二区三区啪| 国产精自产拍久久久久久| 2024最新电影在线免费观看| 亚洲国产精品成人va在线观看| 久久久久99精品成人片三人毛片| 亚洲欧洲在线观看av| xxxwww国产| 日本欧美大码aⅴ在线播放| 日本xxxxx18| 一区二区美女| 91九色国产在线| 天天视频天天爽| 欧美激情 亚洲a∨综合| 久久久99爱| 亚洲国产aⅴ精品一区二区三区| 欧美高清一级大片| 美女羞羞视频在线观看| 亚洲美女自拍视频| a天堂中文在线观看| 日韩欧美aaa| 激情小说中文字幕| 中文字幕一区视频| 搡老熟女老女人一区二区| 韩国精品在线观看| 久久久久久久激情| 自拍日韩欧美| 吴梦梦av在线| 精品在线手机视频| 国产99在线播放| 日韩av大片站长工具| 欧美激情第99页| www视频在线观看免费| 精品一区精品二区| 亚洲国产精品国自产拍久久| 欧美日韩激情在线| 男人天堂2024| 欧美日韩国产色视频| 欧美精品xxxxx| 中文字幕亚洲欧美在线不卡| 国产麻豆xxxvideo实拍| 国产在线播放一区三区四| www.四虎成人| 极品少妇一区二区三区| 亚洲一区 在线播放| 狠狠操综合网| 精品乱子伦一区二区三区| 欧美久久亚洲| 91久久久久久| 国产精品日本一区二区不卡视频| 国产精品极品尤物在线观看| 一区二区三区短视频| 欧美日韩高清区| 国内在线视频| 欧美—级高清免费播放| 少女频道在线观看高清 | 污污视频在线观看网站| 制服丝袜中文字幕亚洲| 中文字幕一区二区三区四区视频 | 粉嫩av一区二区三区天美传媒 | 国精产品一区一区二区三区mba| 国产精品黄色在线观看| 99自拍偷拍视频| 国产精品素人一区二区| 美国一级黄色录像| 国产精品三级av| www欧美com| 亚洲国产精品一区二区久久恐怖片 | www.av88| 欧美浪妇xxxx高跟鞋交| 国产精品久久久久久久成人午夜| 欧美久久高跟鞋激| 国产特黄一级片| 欧美日韩欧美一区二区| 国产福利小视频| 精品日韩欧美在线| 色欲av伊人久久大香线蕉影院| 精品日韩成人av| 午夜激情小视频| 社区色欧美激情 | 精产国品自在线www| 欧美精品在线极品| 精品捆绑调教一区二区三区| 欧美亚洲视频在线看网址| 久草综合在线| 91黄在线观看| 日韩最新在线| 日本在线观看不卡| 色狮一区二区三区四区视频| a级网站在线观看| 伊人久久成人| 国内外免费激情视频| 看片网站欧美日韩| 91传媒理伦片在线观看| 久久久久久久久免费| 老司机福利在线观看| 亚洲精品免费在线观看| 久久免费视频播放| 欧美视频日韩视频| 亚洲av无码国产精品久久不卡 | 第四色成人网| 色一情一乱一乱一区91| 夜夜精品视频| 天天操天天爽天天射| av中文字幕在线不卡| 欧美激情亚洲色图| 亚洲最快最全在线视频| 国产视频1区2区| 亚洲成在人线av| 69久久久久| 久久久久久久影院| 免费在线观看一区| 91嫩草在线视频| 精品国产不卡| 天天做天天躁天天躁| 日韩精品一二三| 在线xxxxx| 亚洲女子a中天字幕| 中文字幕在线播| 欧美精品一区二| 888av在线| 国产成人精品视频在线| jazzjazz国产精品久久| 视频一区二区三区在线观看| 亚洲第一区色| 男人透女人免费视频| 91色porny| 欧美日韩在线观看成人| 欧美亚洲禁片免费| 亚洲第一大网站| 欧美老少配视频| 成人国产精选| 欧美一区二区高清在线观看| 国内精品99| 亚洲一二三四五| 亚洲欧美视频一区| 亚洲自拍第二页| 一区二区三区视频免费| 日韩大片欧美大片| 精品一区二区日本| 在线欧美福利| 日本黄色大片在线观看| 亚洲精品成人悠悠色影视| 一级日韩一级欧美| 中文日韩在线观看| 毛片免费看不卡网站| 欧美亚洲免费高清在线观看| 亚洲美女视频在线免费观看| 亚洲成人av免费观看| |精品福利一区二区三区| 一区二区视频网| 中文字幕亚洲一区二区三区五十路 | 午夜精品久久久久久久无码| 成人h精品动漫一区二区三区| 男人与禽猛交狂配| 欧美精品日韩综合在线| 国产美女av在线| 91久久国产精品| 99热国内精品永久免费观看| 密臀av一区二区三区| 国产人久久人人人人爽| 波多野结衣mp4| 中文字幕一精品亚洲无线一区 | 狠狠色丁香婷婷综合影院| 中文字幕在线观看第三页| 久久久久久9999| 黄色网址中文字幕| 色一情一乱一区二区| 日韩免费成人av| 亚洲欧美色综合| 99在线小视频| 欧美日韩高清在线观看| 亚洲va久久久噜噜噜久久| 国产福利视频在线播放| 国产日韩欧美一区二区三区乱码| 日韩乱码一区二区三区| 久久久国产成人精品| 一区二区三区亚洲变态调教大结局 | 波多野结衣乳巨码无在线| 久久新电视剧免费观看| 天堂av免费在线观看| 亚洲天天在线日亚洲洲精| 日韩电影精品| 欧美中文字幕在线观看视频| 成人激情视频网站| 久久狠狠高潮亚洲精品| 色偷偷综合社区| 7777精品| 日本熟妇人妻xxxxx| 国产精品天干天干在观线| 精品区在线观看| 欧美亚洲日本黄色| 欧美激情理论| av直播在线观看| 欧美丰满嫩嫩电影| 色戒汤唯在线| 精品日韩在线播放|