# 服务发现

  app.NewWebHostBuilder().
	 UseConfiguration(configuration).
	 ConfigureServices(func(serviceCollection *dependencyinjection.ServiceCollection) {
      // 依赖注入 ETCD 服务发现组件
		  etcd.UseServiceDiscovery(serviceCollection)
   }).Build().Run()

# Nacos配置:

yoyogo:
  application:
    name: demo_dev
    metadata: "develop"
  cloud:
    discovery:
      cache:
        ttl: 30     # seconds 服务列表缓存时间 (秒)
      type: "etcd"
      metadata:
      address:
        - "localhost:32379"
      namespace: "public"
      ttl: 60
      auth:
        enable: true
        username: "root"
        password: "5z1fLbYw8A"

# 获取服务实例

新建一个Controller,并在GetSD函数中获取demo_dev服务的所有实例

type UserController struct {
	mvc.ApiController
	discoveryClient serverdiscovery.IServerDiscovery
}

func NewUserController(sd serverdiscovery.IServerDiscovery) *UserController {
	return &UserController{ discoveryClient: sd}
}

func (controller UserController) GetSD() mvc.ApiResult {
	serviceList := controller.discoveryClient.GetAllInstances("demo_dev")
	return controller.OK(serviceList)
}