diff --git a/MicoService.Demo.slnx b/MicoService.Demo.slnx
index 7cbfcce..e84a1f1 100644
--- a/MicoService.Demo.slnx
+++ b/MicoService.Demo.slnx
@@ -1,3 +1,4 @@
+
diff --git a/MicoService.Demo/Controllers/TestController.cs b/MicoService.Demo/Controllers/TestController.cs
new file mode 100644
index 0000000..66bfc08
--- /dev/null
+++ b/MicoService.Demo/Controllers/TestController.cs
@@ -0,0 +1,56 @@
+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";
+
+ }
+
+
+ }
+}
diff --git a/MicoService.Demo/Controllers/WeatherForecastController.cs b/MicoService.Demo/Controllers/WeatherForecastController.cs
deleted file mode 100644
index 02925e4..0000000
--- a/MicoService.Demo/Controllers/WeatherForecastController.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-
-namespace MicoService.Demo.Controllers
-{
- [ApiController]
- [Route("[controller]")]
- public class WeatherForecastController : ControllerBase
- {
- private static readonly string[] Summaries =
- [
- "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
- ];
- private readonly IConfiguration _configuration;
-
- public WeatherForecastController(IConfiguration configuration)
- {
- this._configuration = configuration;
- }
-
- [HttpGet(Name = "GetWeatherForecast")]
- public IEnumerable Get()
- {
- return Enumerable.Range(1, 5).Select(index => new WeatherForecast
- {
- Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
- TemperatureC = Random.Shared.Next(-20, 55),
- Summary = Summaries[Random.Shared.Next(Summaries.Length)]
- })
- .ToArray();
- }
-
- [HttpGet("config/{key}")]
- public string GetConfig(string key)
- {
- return _configuration[key];
- }
- }
-}
diff --git a/MicoService.Demo/Program.cs b/MicoService.Demo/Program.cs
index edd7fb8..fe86fb6 100644
--- a/MicoService.Demo/Program.cs
+++ b/MicoService.Demo/Program.cs
@@ -10,13 +10,16 @@ namespace MicoService.Demo
{
var builder = WebApplication.CreateBuilder(args);
-
+
+ #region Nacos
+ // 配置 Nacos 配置中心
builder.Host.UseNacosConfig("nacos");
builder.Services.AddNacosV2Config(builder.Configuration);
-
+ // 配置 Nacos 注册发现
builder.Services.AddNacosAspNet(builder.Configuration);
- builder.Services.AddNacosV2Naming(builder.Configuration);
+ builder.Services.AddNacosV2Naming(builder.Configuration);
+ #endregion
// Add services to the container.
diff --git a/MicoService.Demo/WeatherForecast.cs b/MicoService.Demo/WeatherForecast.cs
deleted file mode 100644
index 3e0cdf0..0000000
--- a/MicoService.Demo/WeatherForecast.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace MicoService.Demo
-{
- public class WeatherForecast
- {
- public DateOnly Date { get; set; }
-
- public int TemperatureC { get; set; }
-
- public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
-
- public string? Summary { get; set; }
- }
-}
diff --git a/MicoService.Demo/appsettings.Development.json b/MicoService.Demo/appsettings.Development.json
index 4c7e361..ddde512 100644
--- a/MicoService.Demo/appsettings.Development.json
+++ b/MicoService.Demo/appsettings.Development.json
@@ -17,7 +17,7 @@
// Ncaos 娉ㄥ唽涓績鐨勯厤缃
"DefaultTimeOut": 15000,
"ListenInterval": 1000,
- "ServiceName": "Mico_Demo1",
+ "ServiceName": "Mico_Demo1111",
"GroupName": "DEFAULT_GROUP",
"RegisterEnabled": true,
"InstanceEnabled": true,
diff --git a/MicoService.Demo2/Controllers/UserController.cs b/MicoService.Demo2/Controllers/UserController.cs
new file mode 100644
index 0000000..94c5db9
--- /dev/null
+++ b/MicoService.Demo2/Controllers/UserController.cs
@@ -0,0 +1,28 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace MicoService.Demo2.Controllers
+{
+ [ApiController]
+ [Route("[controller]")]
+ public class UserController : ControllerBase
+ {
+
+ public UserController( IConfiguration configuration)
+ {
+ _configuration = configuration;
+ }
+ private readonly IConfiguration _configuration;
+ ///
+ /// 演示:读取 Nacos 配置中心配置
+ ///
+ ///
+ ///
+ [HttpGet("config/{key}")]
+ public string GetConfig(string key)
+ {
+ return _configuration[key];
+ }
+
+
+ }
+}
diff --git a/MicoService.Demo2/MicoService.Demo2.csproj b/MicoService.Demo2/MicoService.Demo2.csproj
new file mode 100644
index 0000000..25d4627
--- /dev/null
+++ b/MicoService.Demo2/MicoService.Demo2.csproj
@@ -0,0 +1,15 @@
+
+
+
+ net10.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
diff --git a/MicoService.Demo2/Program.cs b/MicoService.Demo2/Program.cs
new file mode 100644
index 0000000..7745c94
--- /dev/null
+++ b/MicoService.Demo2/Program.cs
@@ -0,0 +1,45 @@
+
+using Nacos.AspNetCore.V2;
+using Nacos.V2.DependencyInjection;
+
+namespace MicoService.Demo2
+{
+ public class Program
+ {
+ public static void Main(string[] args)
+ {
+ var builder = WebApplication.CreateBuilder(args);
+
+ #region Nacos
+ // 配置 Nacos 配置中心
+ builder.Host.UseNacosConfig("nacos");
+ builder.Services.AddNacosV2Config(builder.Configuration);
+
+ // 配置 Nacos 注册发现
+ builder.Services.AddNacosAspNet(builder.Configuration);
+ builder.Services.AddNacosV2Naming(builder.Configuration);
+ #endregion
+
+ // Add services to the container.
+
+ builder.Services.AddControllers();
+ // Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
+ builder.Services.AddOpenApi();
+
+ var app = builder.Build();
+
+ // Configure the HTTP request pipeline.
+ if (app.Environment.IsDevelopment())
+ {
+ app.MapOpenApi();
+ }
+
+ app.UseAuthorization();
+
+
+ app.MapControllers();
+
+ app.Run();
+ }
+ }
+}
diff --git a/MicoService.Demo2/Properties/launchSettings.json b/MicoService.Demo2/Properties/launchSettings.json
new file mode 100644
index 0000000..f4639c3
--- /dev/null
+++ b/MicoService.Demo2/Properties/launchSettings.json
@@ -0,0 +1,14 @@
+锘縶
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": false,
+ "applicationUrl": "http://localhost:5181",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/MicoService.Demo2/appsettings.Development.json b/MicoService.Demo2/appsettings.Development.json
new file mode 100644
index 0000000..4e776a6
--- /dev/null
+++ b/MicoService.Demo2/appsettings.Development.json
@@ -0,0 +1,29 @@
+{
+ "nacos": {
+ // Nacos 閰嶇疆涓績鐨勯厤缃
+ "Namespace": "685d64ce-d088-400f-8cfe-a669a89015d0", // 浣犵殑鍛藉悕绌洪棿ID
+ "ServerAddresses": [ "http://192.168.2.9:8848" ], // 鑷缓Nacos鍦板潃锛堝幓鎺夋湯灏/锛岄伩鍏嶈В鏋愰棶棰橈級
+ "UserName": "nacos", // 浣犵殑Nacos鐢ㄦ埛鍚
+ "Password": "qwe123!@#", // 浣犵殑Nacos瀵嗙爜
+ "Group": "DEFAULT_GROUP", // 榛樿閰嶇疆鍒嗙粍锛屽彲鎸夐渶淇敼
+ "Listeners": [
+ {
+ "Optional": false,
+ "DataId": "demo2",
+ "Group": "DEFAULT_GROUP"
+ }
+ ],
+
+ // Ncaos 娉ㄥ唽涓績鐨勯厤缃
+ "DefaultTimeOut": 15000,
+ "ListenInterval": 1000,
+ "ServiceName": "Mico_Demo2222",
+ "GroupName": "DEFAULT_GROUP",
+ "RegisterEnabled": true,
+ "InstanceEnabled": true,
+ "Ephemeral": true,
+ "ConfigUseRpc": true,
+ "NamingUseRpc": true,
+ "LBStrategy": "WeightRandom" //WeightRandom WeightRoundRobin
+ }
+}
\ No newline at end of file
diff --git a/MicoService.Demo2/appsettings.json b/MicoService.Demo2/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/MicoService.Demo2/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}