Documentation
¶
Index ¶
- type ConsulDiscovery
- func (cd *ConsulDiscovery) DiscoverPeers(ctx context.Context) ([]internal.NodeInfo, error)
- func (cd *ConsulDiscovery) GetNodeInfo(nodeID string) (*internal.NodeInfo, error)
- func (cd *ConsulDiscovery) Start(ctx context.Context) error
- func (cd *ConsulDiscovery) Stop(ctx context.Context) error
- func (cd *ConsulDiscovery) WatchPeers(ctx context.Context) (<-chan []internal.NodeInfo, error)
- type ConsulDiscoveryConfig
- type DNSDiscovery
- func (dd *DNSDiscovery) GetNodes(ctx context.Context) ([]internal.NodeInfo, error)
- func (dd *DNSDiscovery) Register(ctx context.Context, node internal.NodeInfo) error
- func (dd *DNSDiscovery) Start(ctx context.Context) error
- func (dd *DNSDiscovery) Stop(ctx context.Context) error
- func (dd *DNSDiscovery) Unregister(ctx context.Context) error
- func (dd *DNSDiscovery) Watch(ctx context.Context) (<-chan internal.NodeChangeEvent, error)
- type DNSDiscoveryConfig
- type EtcdDiscovery
- func (ed *EtcdDiscovery) GetNodeInfo(nodeID string) (*internal.NodeInfo, error)
- func (ed *EtcdDiscovery) GetPeers() ([]*internal.NodeInfo, error)
- func (ed *EtcdDiscovery) Health() error
- func (ed *EtcdDiscovery) Start(ctx context.Context) error
- func (ed *EtcdDiscovery) Stop(ctx context.Context) error
- func (ed *EtcdDiscovery) UpdateNodeInfo(info *internal.NodeInfo) error
- func (ed *EtcdDiscovery) Watch(ctx context.Context) (<-chan internal.DiscoveryEvent, error)
- type EtcdDiscoveryConfig
- type KubernetesDiscovery
- func (kd *KubernetesDiscovery) DiscoverPeers(ctx context.Context) ([]internal.NodeInfo, error)
- func (kd *KubernetesDiscovery) GetNodeInfo(nodeID string) (*internal.NodeInfo, error)
- func (kd *KubernetesDiscovery) Start(ctx context.Context) error
- func (kd *KubernetesDiscovery) Stop(ctx context.Context) error
- func (kd *KubernetesDiscovery) WatchPeers(ctx context.Context) (<-chan []internal.NodeInfo, error)
- type KubernetesDiscoveryConfig
- type RegisteredNode
- type Registry
- func (r *Registry) Deregister(nodeID string) error
- func (r *Registry) GetAllNodes() map[string]*RegisteredNode
- func (r *Registry) GetHealthyNodes() []*internal.NodeInfo
- func (r *Registry) GetNodeInfo(nodeID string) (*internal.NodeInfo, error)
- func (r *Registry) GetNodeMetadata(nodeID string, key string) (interface{}, error)
- func (r *Registry) GetPeers() ([]*internal.NodeInfo, error)
- func (r *Registry) GetStatistics() RegistryStatistics
- func (r *Registry) GetUnhealthyNodes() []*internal.NodeInfo
- func (r *Registry) Health() error
- func (r *Registry) Heartbeat(nodeID string) error
- func (r *Registry) Register(node *internal.NodeInfo) error
- func (r *Registry) SetNodeMetadata(nodeID string, key string, value interface{}) error
- func (r *Registry) Start(ctx context.Context) error
- func (r *Registry) Stop(ctx context.Context) error
- func (r *Registry) UpdateNodeInfo(info *internal.NodeInfo) error
- func (r *Registry) Watch(ctx context.Context) (<-chan internal.DiscoveryEvent, error)
- type RegistryConfig
- type RegistryStatistics
- type StaticDiscovery
- func (sd *StaticDiscovery) AddNode(node internal.NodeInfo) error
- func (sd *StaticDiscovery) GetNodes(ctx context.Context) ([]internal.NodeInfo, error)
- func (sd *StaticDiscovery) Register(ctx context.Context, node internal.NodeInfo) error
- func (sd *StaticDiscovery) RemoveNode(nodeID string) error
- func (sd *StaticDiscovery) Start(ctx context.Context) error
- func (sd *StaticDiscovery) Stop(ctx context.Context) error
- func (sd *StaticDiscovery) Unregister(ctx context.Context) error
- func (sd *StaticDiscovery) Watch(ctx context.Context) (<-chan internal.NodeChangeEvent, error)
- type StaticDiscoveryConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConsulDiscovery ¶
type ConsulDiscovery struct {
// contains filtered or unexported fields
}
ConsulDiscovery implements Consul-based service discovery
func NewConsulDiscovery ¶
func NewConsulDiscovery(config ConsulDiscoveryConfig, logger forge.Logger) (*ConsulDiscovery, error)
NewConsulDiscovery creates a new Consul service discovery
func (*ConsulDiscovery) DiscoverPeers ¶
DiscoverPeers discovers peer nodes
func (*ConsulDiscovery) GetNodeInfo ¶
func (cd *ConsulDiscovery) GetNodeInfo(nodeID string) (*internal.NodeInfo, error)
GetNodeInfo returns information about a specific node
func (*ConsulDiscovery) Start ¶
func (cd *ConsulDiscovery) Start(ctx context.Context) error
Start starts the discovery service
func (*ConsulDiscovery) Stop ¶
func (cd *ConsulDiscovery) Stop(ctx context.Context) error
Stop stops the discovery service
func (*ConsulDiscovery) WatchPeers ¶
WatchPeers watches for peer changes
type ConsulDiscoveryConfig ¶
type ConsulDiscoveryConfig struct {
Address string
Datacenter string
Token string
ServiceName string
NodeID string
NodeAddress string
NodePort int
Tags []string
CheckInterval time.Duration
CacheTTL time.Duration
HealthCheck *api.AgentServiceCheck
}
ConsulDiscoveryConfig contains Consul discovery configuration
type DNSDiscovery ¶
type DNSDiscovery struct {
// contains filtered or unexported fields
}
DNSDiscovery implements DNS-based service discovery
func NewDNSDiscovery ¶
func NewDNSDiscovery(config DNSDiscoveryConfig, logger forge.Logger) *DNSDiscovery
NewDNSDiscovery creates a new DNS-based discovery service
func (*DNSDiscovery) Register ¶
Register registers this node with the discovery service (no-op for DNS)
func (*DNSDiscovery) Start ¶
func (dd *DNSDiscovery) Start(ctx context.Context) error
Start starts the DNS discovery service
func (*DNSDiscovery) Stop ¶
func (dd *DNSDiscovery) Stop(ctx context.Context) error
Stop stops the DNS discovery service
func (*DNSDiscovery) Unregister ¶
func (dd *DNSDiscovery) Unregister(ctx context.Context) error
Unregister unregisters this node from the discovery service (no-op for DNS)
func (*DNSDiscovery) Watch ¶
func (dd *DNSDiscovery) Watch(ctx context.Context) (<-chan internal.NodeChangeEvent, error)
Watch watches for node changes
type DNSDiscoveryConfig ¶
type DNSDiscoveryConfig struct {
Domain string
Port int
RefreshInterval time.Duration
DNSServers []string
}
DNSDiscoveryConfig contains DNS discovery configuration
type EtcdDiscovery ¶
type EtcdDiscovery struct {
// contains filtered or unexported fields
}
EtcdDiscovery implements service discovery using etcd
func NewEtcdDiscovery ¶
func NewEtcdDiscovery(config EtcdDiscoveryConfig, logger forge.Logger) (*EtcdDiscovery, error)
NewEtcdDiscovery creates a new etcd-based discovery service
func (*EtcdDiscovery) GetNodeInfo ¶
func (ed *EtcdDiscovery) GetNodeInfo(nodeID string) (*internal.NodeInfo, error)
GetNodeInfo returns information about a specific node
func (*EtcdDiscovery) GetPeers ¶
func (ed *EtcdDiscovery) GetPeers() ([]*internal.NodeInfo, error)
GetPeers returns the list of discovered peers
func (*EtcdDiscovery) Health ¶
func (ed *EtcdDiscovery) Health() error
Health checks the health of the discovery service
func (*EtcdDiscovery) Start ¶
func (ed *EtcdDiscovery) Start(ctx context.Context) error
Start starts the discovery service
func (*EtcdDiscovery) Stop ¶
func (ed *EtcdDiscovery) Stop(ctx context.Context) error
Stop stops the discovery service
func (*EtcdDiscovery) UpdateNodeInfo ¶
func (ed *EtcdDiscovery) UpdateNodeInfo(info *internal.NodeInfo) error
UpdateNodeInfo updates this node's information
func (*EtcdDiscovery) Watch ¶
func (ed *EtcdDiscovery) Watch(ctx context.Context) (<-chan internal.DiscoveryEvent, error)
Watch watches for peer changes
type EtcdDiscoveryConfig ¶
type EtcdDiscoveryConfig struct {
NodeID string
Endpoints []string
Prefix string
TTL time.Duration
}
EtcdDiscoveryConfig contains etcd discovery configuration
type KubernetesDiscovery ¶
type KubernetesDiscovery struct {
// contains filtered or unexported fields
}
KubernetesDiscovery implements Kubernetes-based service discovery
func NewKubernetesDiscovery ¶
func NewKubernetesDiscovery(config KubernetesDiscoveryConfig, logger forge.Logger) (*KubernetesDiscovery, error)
NewKubernetesDiscovery creates a new Kubernetes service discovery
func (*KubernetesDiscovery) DiscoverPeers ¶
DiscoverPeers discovers peer nodes from Kubernetes endpoints
func (*KubernetesDiscovery) GetNodeInfo ¶
func (kd *KubernetesDiscovery) GetNodeInfo(nodeID string) (*internal.NodeInfo, error)
GetNodeInfo returns information about a specific node
func (*KubernetesDiscovery) Start ¶
func (kd *KubernetesDiscovery) Start(ctx context.Context) error
Start starts the discovery service
func (*KubernetesDiscovery) Stop ¶
func (kd *KubernetesDiscovery) Stop(ctx context.Context) error
Stop stops the discovery service
func (*KubernetesDiscovery) WatchPeers ¶
WatchPeers watches for peer changes using Kubernetes watch API
type KubernetesDiscoveryConfig ¶
type KubernetesDiscoveryConfig struct {
Namespace string
ServiceName string
LabelSelector string
Port int
Kubeconfig string
CheckInterval time.Duration
CacheTTL time.Duration
}
KubernetesDiscoveryConfig contains Kubernetes discovery configuration
type RegisteredNode ¶
type RegisteredNode struct {
Info *internal.NodeInfo
RegisteredAt time.Time
LastSeen time.Time
Healthy bool
Metadata map[string]interface{}
}
RegisteredNode represents a registered node
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry manages node registration and discovery with centralized coordination
func NewRegistry ¶
func NewRegistry(config RegistryConfig, logger forge.Logger) *Registry
NewRegistry creates a new registry
func (*Registry) Deregister ¶
Deregister removes a node from the registry
func (*Registry) GetAllNodes ¶
func (r *Registry) GetAllNodes() map[string]*RegisteredNode
GetAllNodes returns all registered nodes including unhealthy
func (*Registry) GetHealthyNodes ¶
GetHealthyNodes returns only healthy nodes
func (*Registry) GetNodeInfo ¶
GetNodeInfo returns information about a node
func (*Registry) GetNodeMetadata ¶
GetNodeMetadata gets metadata for a node
func (*Registry) GetStatistics ¶
func (r *Registry) GetStatistics() RegistryStatistics
GetStatistics returns registry statistics
func (*Registry) GetUnhealthyNodes ¶
GetUnhealthyNodes returns unhealthy nodes
func (*Registry) SetNodeMetadata ¶
SetNodeMetadata sets metadata for a node
func (*Registry) UpdateNodeInfo ¶
UpdateNodeInfo updates node information
type RegistryConfig ¶
type RegistryConfig struct {
NodeID string
HealthCheckInterval time.Duration
NodeTimeout time.Duration
EnableAutoCleanup bool
}
RegistryConfig contains registry configuration
type RegistryStatistics ¶
RegistryStatistics contains registry statistics
type StaticDiscovery ¶
type StaticDiscovery struct {
// contains filtered or unexported fields
}
StaticDiscovery implements static service discovery with a fixed peer list
func NewStaticDiscovery ¶
func NewStaticDiscovery(config StaticDiscoveryConfig, logger forge.Logger) *StaticDiscovery
NewStaticDiscovery creates a new static discovery service
func (*StaticDiscovery) AddNode ¶
func (sd *StaticDiscovery) AddNode(node internal.NodeInfo) error
AddNode dynamically adds a node (for testing/dynamic updates)
func (*StaticDiscovery) RemoveNode ¶
func (sd *StaticDiscovery) RemoveNode(nodeID string) error
RemoveNode dynamically removes a node (for testing/dynamic updates)
func (*StaticDiscovery) Start ¶
func (sd *StaticDiscovery) Start(ctx context.Context) error
Start starts the discovery service
func (*StaticDiscovery) Stop ¶
func (sd *StaticDiscovery) Stop(ctx context.Context) error
Stop stops the discovery service
func (*StaticDiscovery) Unregister ¶
func (sd *StaticDiscovery) Unregister(ctx context.Context) error
Unregister unregisters this node from the discovery service
func (*StaticDiscovery) Watch ¶
func (sd *StaticDiscovery) Watch(ctx context.Context) (<-chan internal.NodeChangeEvent, error)
Watch watches for node changes
type StaticDiscoveryConfig ¶
StaticDiscoveryConfig contains static discovery configuration