func GetDynamicClient() *micro.Client {
	return dynamicClient
}
GetDynamicClient returns the common client with etcd discovery.
package clientele
import (
	"net/url"
	"os"
	"path/filepath"
	"sync"
	"github.com/henrylee2cn/cfgo"
	"github.com/henrylee2cn/erpc/v6"
	"github.com/xiaoenai/tp-micro/v6"
	"github.com/xiaoenai/tp-micro/v6/discovery"
	"github.com/xiaoenai/tp-micro/v6/model/etcd"
)
var dynamicClient *micro.Client
var staticClient *StaticClients
var protoFunc erpc.ProtoFunc
var cliCfg micro.CliConfig
var etcdCfg etcd.EasyConfig
var etcdClient *etcd.Client
var peerName string
var incr int32
var mutex sync.Mutex
func init() {
	cfgo.AllowAppsShare(true)
	cfgo.MustReg("cluster_client", &cliCfg)
	cfgo.MustReg("etcd", &etcdCfg)
	peerName = filepath.Base(os.Args[0])
	protoFunc = erpc.DefaultProtoFunc()
	var err error
	etcdClient, err = etcd.EasyNew(etcdCfg)
	if err != nil {
		erpc.Fatalf("%v", err)
	}
	dynamicClient = micro.NewClient(
		cliCfg,
		discovery.NewLinkerFromEtcd(etcdClient),
	)
	staticClient = &StaticClients{
		clients:   make(map[string]*micro.Client),
		cfg:       cliCfg,
		protoFunc: protoFunc,
	}
}
func GetEtcdClient() *etcd.Client {
	return etcdClient
}