consul

package module
v0.0.0-...-7d341f0 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2023 License: Apache-2.0 Imports: 9 Imported by: 17

README

registry-consul (This is a community driven project)

Docs

Server
Basic Usage
import (
    ...
    "github.com/cloudwego/kitex/pkg/rpcinfo"
    "github.com/cloudwego/kitex/server"
    consul "github.com/kitex-contrib/registry-consul"
    consulapi "github.com/hashicorp/consul/api"
)

func main() {
    
    r, err := consul.NewConsulRegister("127.0.0.1:8500")
    if err != nil {
        log.Fatal(err)
    }
    
    server := hello.NewServer(new(HelloImpl), server.WithRegistry(r), server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{
        ServiceName: "greet.server",
    }))
    err = server.Run()
    if err != nil {
        log.Fatal(err)
    }
}
Customize Service Check

registry has a default config for service check like

check.Timeout = "5s"
check.Interval = "5s"
check.DeregisterCriticalServiceAfter = "1m"

you can also use WithCheck to modify your service check setting

import (
	...
	consul "github.com/kitex-contrib/registry-consul"
	consulapi "github.com/hashicorp/consul/api"
)
func main() {
    ...
	r, err := consul.NewConsulRegister("127.0.0.1:8500", consul.WithCheck(&consulapi.AgentServiceCheck{
            Interval:                       "7s",
            Timeout:                        "5s",
            DeregisterCriticalServiceAfter: "1m",
	}))
}
Customize Register Config

registry has a default config like

config.Address = "127.0.0.1:8500"
config.Scheme = "http"

you can also use NewConsulRegisterWithConfig to modify your config

import (
	...
	consul "github.com/kitex-contrib/registry-consul"
	consulapi "github.com/hashicorp/consul/api"
)
func main() {
    ...
	consulConfig := consulapi.Config{
		Address: "127.0.0.1:8500",
		Scheme:  "https"
		Token:   "TEST-MY-TOKEN",
	}
	r, err := consul.NewConsulRegisterWithConfig(&consulConfig)
}
Client
Basic Usage
import (
    ...
    "github.com/cloudwego/kitex/client"
    consul "github.com/kitex-contrib/registry-consul"
    ...
)

func main() {
    ...
    r, err := consul.NewConsulResolver("127.0.0.1:8500")
    if err != nil {
        log.Fatal(err)
    }
    client, err := echo.NewClient("greet.server", client.WithResolver(r))
    if err != nil {
        log.Fatal(err)
    }
    ...
}
Customize Resolver Config

resolver has a default config like

config.Address = "127.0.0.1:8500"
config.Scheme = "http"

you can also use NewConsulResolverWithConfig to modify your config

import (
	...
	consul "github.com/kitex-contrib/registry-consul"
	consulapi "github.com/hashicorp/consul/api"
)
func main() {
    ...
	consulConfig := consulapi.Config{
		Address: "127.0.0.1:8500",
		Scheme:  "https"
		Token:   "TEST-MY-TOKEN",
	}
	r, err := consul.NewConsulResolverWithConfig(&consulConfig)
}

Example

See Server and Client in example/basic or example/custom-config.

Compatibility

Compatible with consul.

maintained by: Hanson / baiyutang

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewConsulRegister

func NewConsulRegister(address string, opts ...Option) (registry.Registry, error)

NewConsulRegister create a new registry using consul.

func NewConsulRegisterWithConfig

func NewConsulRegisterWithConfig(config *api.Config, opts ...Option) (*consulRegistry, error)

NewConsulRegisterWithConfig create a new registry using consul, with a custom config.

func NewConsulResolver

func NewConsulResolver(address string) (discovery.Resolver, error)

NewConsulResolver create a service resolver using consul.

func NewConsulResolverWithConfig

func NewConsulResolverWithConfig(config *api.Config) (discovery.Resolver, error)

NewConsulResolverWithConfig create a service resolver using consul, with a custom config.

Types

type Option

type Option func(o *options)

Option is consul option.

func WithCheck

func WithCheck(check *api.AgentServiceCheck) Option

WithCheck is consul registry option to set AgentServiceCheck.

Directories

Path Synopsis
example
hello/kitex_gen/api/hello
Code generated by Kitex v0.5.1.
Code generated by Kitex v0.5.1.

Jump to

Keyboard shortcuts

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