Kitex 服務(wù)注冊(cè)擴(kuò)展

2022-04-27 10:24 更新

服務(wù)注冊(cè)擴(kuò)展

Kitex 支持自定義注冊(cè)模塊,使用者可自行擴(kuò)展集成其他注冊(cè)中心,該擴(kuò)展定義在 pkg/registry 下。

擴(kuò)展接口和 Info 定義

  • 擴(kuò)展接口

// Registry is extension interface of service registry.
type Registry interface {
  Register(info *Info) error
  Deregister(info *Info) error
}

  • Info 定義 Kitex 定義了部分注冊(cè)信息,使用者也可以根據(jù)需要自行擴(kuò)展注冊(cè)信息到 Tags 中。

// Info is used for registry.
// The fields are just suggested, which is used depends on design.
type Info struct {
  // ServiceName will be set in kitex by default
  ServiceName string
  // Addr will be set in kitex by default
  Addr net.Addr
  // PayloadCodec will be set in kitex by default, like thrift, protobuf
  PayloadCodec string

  Weight        int
  StartTime     time.Time
  WarmUp        time.Duration

  // extend other infos with Tags.
  Tags map[string]string
}

集成到 Kitex

通過 option 指定自己的注冊(cè)模塊和自定義的注冊(cè)信息。注意注冊(cè)需要服務(wù)信息,服務(wù)信息也是通過 option 指定。

  • 指定服務(wù)信息

option: ?WithServerBasicInfo?

ebi := &rpcinfo.EndpointBasicInfo{
    ServiceName: 'yourServiceName',
    Tags:        make(map[string]string),
}
ebi.Tags[idc] = "xxx"

svr := xxxservice.NewServer(handler, server.WithServerBasicInfo(ebi))

  • 指定自定義注冊(cè)模塊 option: ?WithRegistry ?

svr := xxxservice.NewServer(handler, server.WithServerBasicInfo(ebi), server.WithRegistry(yourRegistry))

  • 自定義 RegistryInfo Kitex 默認(rèn)賦值 ServiceName、Addr 和 PayloadCodec,若需要其他注冊(cè)信息需要使用者自行注入。option: ?WithRegistryInfo ?

svr := xxxservice.NewServer(handler, server.WithRegistry(yourRegistry), server.WithRegistryInfo(yourRegistryInfo))


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)