cluster

package
v0.0.0-...-693abe4 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2019 License: MIT Imports: 9 Imported by: 1

README

Cluster

a package for golang to manage cluster

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ZeroNode = Node{}
)

global variables

Functions

This section is empty.

Types

type Cluster

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

Cluster 代表一个集群

func New

func New(ctx context.Context, endpoints []string, prefix string, nodes Nodes) (*Cluster, error)

New 创建一个新集群,并将自己加入到节点中

func (*Cluster) AddNode

func (c *Cluster) AddNode(node Node) error

AddNode 向集群中增加一个新节点

func (*Cluster) Destroy

func (c *Cluster) Destroy() error

Destroy 删除 cluster 中所有 node,所有节点都会接收到这个删除事件

func (*Cluster) Distribute

func (c *Cluster) Distribute(id int64) Node

Distribute 将一个任务 id 分配给其中一个 Node 节点,并返回这个 Node

func (*Cluster) HasNode

func (c *Cluster) HasNode(name string) bool

HasNode 判断一个 node 是否在集群中; 通常用于判断自身是否在集群中

func (*Cluster) Nodes

func (c *Cluster) Nodes() Nodes

Nodes 获取集群节点列表

func (*Cluster) NodesChan

func (c *Cluster) NodesChan() <-chan Nodes

NodesChan 返回一个 Nodes 类型 channel,用来实时获取 node 的变化情况

func (*Cluster) RemoveNode

func (c *Cluster) RemoveNode(nodeName string) error

RemoveNode 从集群中删除一个节点

func (*Cluster) UpdateNode

func (c *Cluster) UpdateNode(node Node) error

UpdateNode 更新一个节点信息

type Node

type Node struct {
	Name   string
	Weight int
}

Node 代表一个集群节点

type Nodes

type Nodes []Node

Nodes 代表集群的所有节点

func (Nodes) Distribute

func (nodes Nodes) Distribute(id int64) Node

Distribute 将一个任务 id 分配给其中一个 Node 节点,并返回这个 Node

func (Nodes) Len

func (nodes Nodes) Len() int

func (Nodes) Less

func (nodes Nodes) Less(i, j int) bool

func (Nodes) Swap

func (nodes Nodes) Swap(i, j int)

Jump to

Keyboard shortcuts

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