服务发现

  1. app.NewWebHostBuilder().
  2. UseConfiguration(configuration).
  3. ConfigureServices(func(serviceCollection *dependencyinjection.ServiceCollection) {
  4. // 依赖注入 Nacos 服务发现组件
  5. nacos.UseServiceDiscovery(serviceCollection)
  6. }).Build().Run()

Nacos配置:

  1. yoyogo:
  2. application:
  3. name: demo_dev
  4. metadata: "develop"
  5. cloud:
  6. discovery:
  7. cache:
  8. ttl: 30 # seconds 服务列表缓存时间 (秒)
  9. register-enable: true # 是否注册自身 (默认true ,非必填)
  10. type: "nacos"
  11. metadata:
  12. url: "localhost" #local1;local2 使用";"分隔.
  13. port: 8848
  14. namespace: "a3ae02e6-79e9-4150-bcfd-93eb8f9b0235"
  15. group: "mygroup1"
  16. cluster: ""
  17. auth:
  18. enable: true
  19. username: "root"
  20. password: "1234"

获取服务实例

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

  1. type SDController struct {
  2. mvc.ApiController
  3. discoveryCache servicediscovery.Cache
  4. discoveryClient servicediscovery.IServiceDiscoveryClient
  5. }
  6. func NewSDController(sd servicediscovery.IServiceDiscoveryClient, cache servicediscovery.Cache) *SDController {
  7. return &SDController{discoveryClient: sd, discoveryCache: cache}
  8. }
  9. func (controller SDController) GetSD() mvc.ApiResult {
  10. serviceList := controller.discoveryClient.GetAllInstances("yoyogo_demo_dev")
  11. return controller.OK(serviceList)
  12. }
  13. func (controller SDController) GetServices() mvc.ApiResult {
  14. serviceList, _ := controller.discoveryClient.GetAllServices()
  15. return controller.OK(serviceList)
  16. }