client.go 913 Bytes
Newer Older
kzkzzzz's avatar
kzkzzzz committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
package client

import (
	"github.com/asim/go-micro/plugins/client/grpc/v4"
	"github.com/asim/go-micro/plugins/registry/consul/v4"
	"go-micro.dev/v4"
	"go-micro.dev/v4/client"
	"go-micro.dev/v4/registry"
	"go-micro.dev/v4/selector"
	"gomicro-base/service/wallet/internal/conf"
)

var (
	microClient client.Client
	cf          *conf.Config
)

func NewMicroClient(c *conf.Config) {
	cf = c
	microRegistry := consul.NewRegistry(registry.Addrs(c.Server.ConsulServer...))
	// 轮询访问
	newSelector := selector.NewSelector(
		selector.Registry(microRegistry),
		selector.SetStrategy(selector.RoundRobin),
	)

	service := micro.NewService(
		micro.Client(grpc.NewClient()),
		micro.Selector(newSelector),
		micro.WrapClient(NewTimeoutWrapper),
		//micro.WrapClient(NewLogWrapper),
	)
	microClient = service.Client()
}

func GetClient() client.Client {
	return microClient
}

func Reconnect() {
	NewMicroClient(cf)
}