discovery

package
v1.2.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2026 License: MIT Imports: 9 Imported by: 0

README

discovery

discovery 是对 Nacos naming client 的薄封装。它不重新抽象注册中心,而是在构造阶段把配置校验、去重和克隆做好。

设计原则

  • 直接返回 Nacos 原生 INamingClient,不发明第二套抽象。
  • ClientConfigServerConfigs 在边界会被克隆,避免调用方后续修改污染已构建客户端。
  • 空白和重复的 ServerConfig 会被过滤。
  • 必须提供有效 ServerConfigsClientConfig.Endpoint 之一。

快速开始

clientConfig := constant.NewClientConfig()
clientConfig.NamespaceId = "public"

cli, err := discovery.New(&discovery.Config{
    ClientConfig: clientConfig,
    ServerConfigs: []constant.ServerConfig{
        {IpAddr: "127.0.0.1", Port: 8848},
    },
})
if err != nil {
    panic(err)
}

_ = cli

API 摘要

type Config struct {
    ClientConfig          *constant.ClientConfig
    ServerConfigs         []constant.ServerConfig
    RamCredentialProvider security.RamCredentialProvider
}

func Open(*Config) (naming_client.INamingClient, error)
func New(*Config) (naming_client.INamingClient, error)

默认行为

  • ClientConfig == nil 时会使用 constant.NewClientConfig() 默认值
  • ServerConfigs 里的空白项和重复项会被忽略
  • 如果最终既没有有效 server config,也没有 Endpoint,会直接报错

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNilConfig        = errors.New("discovery: config is required")
	ErrServerConfigMiss = errors.New("discovery: server configs or client endpoint is required")
)

Functions

func New

func Open added in v1.2.2

func Open(conf *Config) (naming_client.INamingClient, error)

Types

type Config

type Config struct {
	ClientConfig          *constant.ClientConfig
	ServerConfigs         []constant.ServerConfig
	RamCredentialProvider security.RamCredentialProvider
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL