registry

package module
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2021 License: MIT Imports: 12 Imported by: 2

README

registry lookup service

Build Status Go Report Card GoDoc Coverage Status

Library provides the interface and service discovery based on abstract discovery interface.

Supports:

  • Consul
  • Zookeeper
  • etcd

GRPC configuration

import (
	"google.golang.org/grpc/balancer"
	"google.golang.org/grpc/resolver"

	"github.com/trafficstars/registry"
	registry_balancer "github.com/trafficstars/registry/net/balancer"
	grpc_transport "github.com/trafficstars/registry/net/grpc"
)

func main() {
	// Init registry & service descovery
	registry, err := registry.New(registryDSN, registryArgs)
	if err != nil {
		log.Fatal(err)
	}

	// Init global network load-balancer
	registry_balancer.Init(registry_balancer.RoundRobinStrategy, myRegistry.Discovery())

	// Register balancer and connection resolver
	balancer.Register(grpc_transport.NewBalancerBuilder("registry"))
	resolver.Register(grpc_transport.NewResolveBuilder("registry", myRegistry.Discovery()))
	resolver.SetDefaultScheme("registry")
}

Documentation

Index

Constants

View Source
const (
	SERVICE_STATUS_UNDEFINED int8 = iota + 1
	SERVICE_STATUS_PASSING
	SERVICE_STATUS_WARNING
	SERVICE_STATUS_CRITICAL
)
View Source
const RegistryPrefix = "registry"

RegistryPrefix represents the name of the meta field of config

Variables

This section is empty.

Functions

This section is empty.

Types

type CheckOptions

type CheckOptions struct {
	Interval        string
	Timeout         string
	HTTP            string
	TCP             string
	TTL             string
	DeregisterAfter string
}

CheckOptions defines sevice healthcheck

type Discovery

type Discovery interface {
	Lookup(*Filter) ([]Service, error)
	Register(ServiceOptions) error
	Deregister(string) error
}

Descovery service functionality definition

type Filter

type Filter struct {
	ID         string
	Status     int8
	Tags       []string
	Service    string
	Datacenter string
}

Filter search descovery definition

type KV

type KV interface {
	Get(string) (string, error)
	Set(key, value string) error
	List(prefix string) (map[string]string, error)
	Delete(string) error
}

KV is key value storage functionality definition

type Registry

type Registry interface {
	KV() KV
	Bind(i sync.Locker) error
	Discovery() Discovery
	Refresh()
}

Registry functionality definition

func New

func New(dsn string, osArgs []string) (Registry, error)

New registry contoller interface

type Service

type Service struct {
	ID         string
	Name       string
	Datacenter string
	Address    string
	Port       int
	Tags       []string
	Status     int8
}

Service config definition

type ServiceOptions

type ServiceOptions struct {
	ID      string
	Name    string
	Address string
	Tags    []string
	Check   CheckOptions
}

ServiceOptions defines proxy sevice object

Directories

Path Synopsis
example
net

Jump to

Keyboard shortcuts

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