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) (any, 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 any) 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]any
}
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.