Documentation
¶
Index ¶
- Constants
- func ExternalIP(names ...string) (string, error)
- func GRPCHealthCheck(ctx context.Context, healthyConfig *HealthyConfig, service string, ...) error
- func HTTPHealthCheck(ctx context.Context, healthyConfig *HealthyConfig) error
- func IP() (string, error)
- func SetupSnowflakeNode(node *snowflake.Node)
- func SnowflakeID() snowflake.ID
- func SnowflakeIDInt64() int64
- type Endpoint
- type EndpointOption
- type HealthChecker
- type HealthyConfig
- type HealthyConfigOption
- type Metadata
- type Protocol
- type Registry
- type SnowflakeNode
- type SnowflakeNodeRunner
Constants ¶
View Source
const ( HTTP protocol = "http" GRPC protocol = "grpc" )
Variables ¶
This section is empty.
Functions ¶
func ExternalIP ¶
func GRPCHealthCheck ¶
func GRPCHealthCheck(ctx context.Context, healthyConfig *HealthyConfig, service string, options ...grpc.DialOption) error
func HTTPHealthCheck ¶
func HTTPHealthCheck(ctx context.Context, healthyConfig *HealthyConfig) error
func SetupSnowflakeNode ¶
func SnowflakeID ¶
func SnowflakeIDInt64 ¶
func SnowflakeIDInt64() int64
Types ¶
type Endpoint ¶
type Endpoint struct {
// contains filtered or unexported fields
}
func NewEndpoint ¶
func NewEndpoint(service, host string, port uint16, options ...EndpointOption) *Endpoint
type EndpointOption ¶
type EndpointOption func(*Endpoint)
func WithHealthy ¶
func WithHealthy(healthy *HealthyConfig) EndpointOption
func WithMetadata ¶
func WithMetadata(key string, val ...string) EndpointOption
func WithNodeID ¶
func WithNodeID(nodeID string) EndpointOption
type HealthChecker ¶
type HealthyConfig ¶
func NewHealthyConfig ¶
func NewHealthyConfig(protocol Protocol, target string, options ...HealthyConfigOption) *HealthyConfig
type HealthyConfigOption ¶
type HealthyConfigOption func(*HealthyConfig)
func WithHealthyConfigOptions ¶
func WithHealthyConfigOptions(key string, val ...string) HealthyConfigOption
type Protocol ¶
type Protocol interface { Is(v protocol) bool // contains filtered or unexported methods }
type SnowflakeNode ¶
func NewSnowflakeNode ¶
func NewSnowflakeNode(ctx context.Context, client redis.UniversalClient, service, id string) (*SnowflakeNode, error)
NewSnowflakeNode 基于 redis SetEx 实现自动分配服务节点序号,保证每个节点序号在服务内唯一,并将节点序号作为 NodeID 创建 snowflake.Node 对象。 注意:获取到节点序号后需要定期刷新(运行SnowflakeNode.Start()),保持当前节点对该序号的持有状态。 警告:节点序号范围为 0~1023,节点数量超过范围将无法分配序号。同时缓存有一小时过期时间,如果服务内所有节点一小时内累计异常重启次数超过1023次, 也可能导致无法分配序号。
func NewSnowflakeNodeWithEndpoint ¶
func NewSnowflakeNodeWithEndpoint(ctx context.Context, client redis.UniversalClient, endpoint *Endpoint) ( *SnowflakeNode, error, )
func (*SnowflakeNode) Runner ¶
func (s *SnowflakeNode) Runner() SnowflakeNodeRunner
Click to show internal directories.
Click to hide internal directories.