resolver

package module
v0.0.0-...-3b68d24 Latest Latest
Warning

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

Go to latest
Published: Nov 5, 2019 License: Apache-2.0 Imports: 7 Imported by: 0

README

Lightweight GRPC consul resolver

Simple Consul resolver that works alongside gRPC client side load balancing. It listens in to changes in Consul and updates the State accordingly and asynchronously.

Usage

import (
    "github.com/ouanixi/consulresolver"

    "github.com/hashicorp/consul/api"
    "google.golang.org/grpc/balancer/roundrobin"
	"google.golang.org/grpc/resolver"

)
func main() {
	builder := consulresolver.NewConsulBuilder(api.DefaultConfig())
	resolver.Register(builder)

	conn, _ = grpc.Dial(
			"consul:///email?tags=grpc",
			grpc.WithBalancerName(roundrobin.Name),
        )
    defer conn.Close()

}

Documentation

Index

Constants

View Source
const Scheme = "consul"

Variables

This section is empty.

Functions

func NewConsulBuilder

func NewConsulBuilder(cc *api.Config) resolver.Builder

Types

type ConsulResolver

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

func NewConsulResolver

func NewConsulResolver(cc resolver.ClientConn, consul *api.Client, tgt *Target) *ConsulResolver

func (*ConsulResolver) Close

func (r *ConsulResolver) Close()

func (*ConsulResolver) ResolveNow

func (r *ConsulResolver) ResolveNow(resolver.ResolveNowOption)

type ConsulResolverBuilder

type ConsulResolverBuilder struct {
	ConsulClientConfig *api.Config
}

func (*ConsulResolverBuilder) Build

func (*ConsulResolverBuilder) Scheme

func (b *ConsulResolverBuilder) Scheme() string

type Target

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

Jump to

Keyboard shortcuts

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