discovery

package
v1.4.1 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2022 License: MIT Imports: 11 Imported by: 2

README

discovery

discovery 服务发现,与服务注册registry对应,支持etcd、consul、nacos三种方式。

使用示例

    var cliOptions = []grpccli.Option{}
    var endpoint string

	switch grpcClientCfg.RegistryDiscoveryType {
	// 使用consul发现服务
	case "consul":
		endpoint = "discovery:///" + grpcClientCfg.Name // 通过服务名称连接grpc服务
		cli, err := consulcli.Init(cfg.Consul.Addr, consulcli.WithWaitTime(time.Second*5))
		if err != nil {
			panic(fmt.Sprintf("consulcli.Init error: %v, addr: %s", err, cfg.Consul.Addr))
		}
		iDiscovery := consul.New(cli)
		cliOptions = append(cliOptions, grpccli.WithDiscovery(iDiscovery))
	// 使用etcd发现服务
	case "etcd":
		endpoint = "discovery:///" + grpcClientCfg.Name // 通过服务名称连接grpc服务
		cli, err := etcdcli.Init(cfg.Etcd.Addrs, etcdcli.WithDialTimeout(time.Second*5))
		if err != nil {
			panic(fmt.Sprintf("etcdcli.Init error: %v, addr: %s", err, cfg.Etcd.Addrs))
		}
		iDiscovery := etcd.New(cli)
		cliOptions = append(cliOptions, grpccli.WithDiscovery(iDiscovery))
	// 使用nacos发现服务
	case "nacos":
		// example: endpoint = "discovery:///serverName.scheme"
		endpoint = "discovery:///" + grpcClientCfg.Name + ".grpc"
		cli, err := nacoscli.NewNamingClient(
			cfg.NacosRd.IPAddr,
			cfg.NacosRd.Port,
			cfg.NacosRd.NamespaceID)
		if err != nil {
			panic(fmt.Sprintf("nacoscli.NewNamingClient error: %v, ipAddr: %s, port: %d",
				err, cfg.NacosRd.IPAddr, cfg.NacosRd.Port))
		}
		iDiscovery := nacos.New(cli)
		cliOptions = append(cliOptions, grpccli.WithDiscovery(iDiscovery))
	}

    serverNameExampleConn, err = grpccli.DialInsecure(context.Background(), endpoint, cliOptions...)
    if err != nil {
        panic(fmt.Sprintf("dial rpc server failed: %v, endpoint: %s", err, endpoint))
    }

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsSecure

func IsSecure(u *url.URL) bool

IsSecure parses isSecure for Endpoint URL.

func NewBuilder

func NewBuilder(d registry.Discovery, opts ...Option) resolver.Builder

NewBuilder creates a builder which is used to factory registry resolvers.

Types

type Option

type Option func(o *builder)

Option is builder option.

func DisableDebugLog

func DisableDebugLog() Option

DisableDebugLog disables update instances log.

func WithInsecure

func WithInsecure(insecure bool) Option

WithInsecure with isSecure option.

func WithTimeout

func WithTimeout(timeout time.Duration) Option

WithTimeout with timeout option.

Jump to

Keyboard shortcuts

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