nacos

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2026 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package nacos implements Nacos instance discovery.

Index

Constants

View Source
const (
	AuthNone        = "none"
	AuthAccessToken = "access_token"
)
View Source
const NamingSubscriptionExecutorVersionV1 = "v1"

Variables

This section is empty.

Functions

This section is empty.

Types

type Binding

type Binding struct {
	// contains filtered or unexported fields
}

func NewBinding

func NewBinding(input BindingInput) (Binding, error)

func (Binding) ClusterName

func (binding Binding) ClusterName() string

func (Binding) GroupName

func (binding Binding) GroupName() string

func (Binding) ServiceName

func (binding Binding) ServiceName() string

func (Binding) Target

func (binding Binding) Target() registry.ReleaseTarget

type BindingInput

type BindingInput struct {
	Target      registry.ReleaseTarget
	ServiceName string
	GroupName   string
	ClusterName string
}

type BindingSource

type BindingSource interface {
	Binding(context.Context, registry.ReleaseTarget) (Binding, error)
}

type Directory

type Directory struct {
	// contains filtered or unexported fields
}

func NewDirectory

func NewDirectory(config DirectoryConfig) (*Directory, error)

func (*Directory) Capabilities

func (directory *Directory) Capabilities() registry.Capabilities

func (*Directory) Close

func (directory *Directory) Close() error

func (*Directory) Observe

func (directory *Directory) Observe(ctx context.Context, target registry.ReleaseTarget) (registry.InstanceObservation, error)

func (*Directory) Snapshot

func (directory *Directory) Snapshot(ctx context.Context, target registry.ReleaseTarget) (registry.InstanceSnapshot, error)

type DirectoryConfig

type DirectoryConfig struct {
	APIOrigin        string
	NamespaceID      string
	PortName         string
	MaxResponseBytes int64
	AuthMode         string
	AccessToken      string
	Executor         RequestExecutor
	Bindings         BindingSource
	Subscriber       NamingSubscriptionExecutor
	PendingChanges   int
}

type GRPCExecutor

type GRPCExecutor struct {
	// contains filtered or unexported fields
}

func NewGRPCExecutor

func NewGRPCExecutor(config GRPCExecutorConfig) (*GRPCExecutor, error)

func (*GRPCExecutor) Guarantees

func (*GRPCExecutor) Subscribe

func (executor *GRPCExecutor) Subscribe(ctx context.Context, request NamingSubscribeRequest) (NamingSubscription, error)

type GRPCExecutorConfig

type GRPCExecutorConfig struct {
	Target               string
	ClientIP             string
	RequestTimeout       time.Duration
	TransportCredentials credentials.TransportCredentials
	RequestHeaders       map[string]string
}

type NamingPushStream

type NamingPushStream interface {
	Next(context.Context) ([]byte, error)
	Close() error
}

NamingPushStream yields complete raw Nacos ServiceInfo JSON payloads. EOF, transport failure, or Close is terminal; implementations must not reconnect.

type NamingSubscribeRequest

type NamingSubscribeRequest struct {
	// contains filtered or unexported fields
}

func (NamingSubscribeRequest) ClusterName

func (request NamingSubscribeRequest) ClusterName() string

func (NamingSubscribeRequest) GroupName

func (request NamingSubscribeRequest) GroupName() string

func (NamingSubscribeRequest) NamespaceID

func (request NamingSubscribeRequest) NamespaceID() string

func (NamingSubscribeRequest) ServiceName

func (request NamingSubscribeRequest) ServiceName() string

type NamingSubscription

type NamingSubscription struct {
	// contains filtered or unexported fields
}

func NewNamingSubscription

func NewNamingSubscription(initial []byte, stream NamingPushStream) (NamingSubscription, error)

func (NamingSubscription) Close

func (subscription NamingSubscription) Close() error

func (NamingSubscription) InitialPayload

func (subscription NamingSubscription) InitialPayload() []byte

func (NamingSubscription) Next

func (subscription NamingSubscription) Next(ctx context.Context) ([]byte, error)

type NamingSubscriptionExecutor

type NamingSubscriptionExecutor interface {
	Guarantees() NamingSubscriptionGuarantees
	Subscribe(context.Context, NamingSubscribeRequest) (NamingSubscription, error)
}

type NamingSubscriptionGuarantees

type NamingSubscriptionGuarantees struct {
	Version                    string
	AtomicInitialPushHandoff   bool
	ExactlyOneSubscribeAttempt bool
	NoRetry                    bool
	NoReconnect                bool
	NoResponseCache            bool
	NoFailover                 bool
	NoImplicitPolling          bool
	NoHiddenReauthentication   bool
}

NamingSubscriptionGuarantees excludes the recovery and cache behavior of general-purpose Nacos SDK clients from this provider boundary.

func (NamingSubscriptionGuarantees) Validate

func (guarantees NamingSubscriptionGuarantees) Validate() error

type Registrar

type Registrar struct {
	// contains filtered or unexported fields
}

func NewRegistrar

func NewRegistrar(config RegistrarConfig) (*Registrar, error)

func (*Registrar) Capabilities

func (registrar *Registrar) Capabilities() registry.Capabilities

func (*Registrar) Close

func (registrar *Registrar) Close() error

func (*Registrar) Register

func (registrar *Registrar) Register(ctx context.Context, registration registry.Registration) (registry.InstanceLease, error)

type RegistrarConfig

type RegistrarConfig struct {
	APIOrigin         string
	NamespaceID       string
	Binding           Binding
	PortName          string
	Weight            float64
	HeartbeatInterval time.Duration
	HeartbeatTimeout  time.Duration
	IPDeleteTimeout   time.Duration
	AuthMode          string
	AccessToken       string
	Executor          RequestExecutor
}

type RequestExecutor

type RequestExecutor interface {
	Do(*http.Request) (*http.Response, error)
}

Jump to

Keyboard shortcuts

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