using Microsoft.AspNetCore.Mvc;
using Nacos.V2;
using System.Threading.Tasks;
namespace MicoService.Demo.Controllers
{
[ApiController]
[Route("[controller]")]
public class TestController : ControllerBase
{
private readonly IConfiguration _configuration;
private readonly INacosNamingService _nacosNamingService;
public TestController(IConfiguration configuration,
INacosNamingService nacosNamingService)
{
this._configuration = configuration;
this._nacosNamingService = nacosNamingService;
}
///
/// 演示:读取 Nacos 配置中心配置
///
///
///
[HttpGet("config/{key}")]
public string GetConfig(string key)
{
return _configuration[key];
}
///
/// 演示:调用其他微服务
///
[HttpGet("call")]
public async Task CallOtherService()
{
// 核心API:获取单个实例(内置负载均衡)
var instance = await _nacosNamingService.SelectOneHealthyInstance("Mico_Demo2222");
if (instance == null)
{
Console.WriteLine("无可用实例");
}
// 拼接调用地址,如:http://192.168.2.10:8080/api/xxx
var callUrl = $"http://{instance.Ip}:{instance.Port}/user/config/info";
}
}
}