feat: 添加多语言客户端 Docker 支持
- 新增 .NET 客户端 SDK 和 demo 项目 - 添加 Go/Node.js/Python/.NET/SpringBoot2 的 Dockerfile - Go demo 支持从环境变量读取配置 - 创建 README_DOCKERFILE.md 文档说明 Docker 使用方法 - 更新根目录 README.md 标记 .NET 客户端为已支持
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../kenaito-conf-dotnet-client/KenaitoConfClient.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,52 @@
|
||||
using Kenaito.Conf.Client;
|
||||
|
||||
var config = new Config
|
||||
{
|
||||
BaseUrl = "http://localhost:8080",
|
||||
AppName = "kenaito-springboot-demo",
|
||||
Env = "daily",
|
||||
Version = "latest",
|
||||
SyncInterval = 10,
|
||||
CacheDir = "."
|
||||
};
|
||||
|
||||
var client = new Client(config);
|
||||
|
||||
client.OnChange(changed =>
|
||||
{
|
||||
Console.WriteLine("Config changed:");
|
||||
foreach (var kv in changed)
|
||||
{
|
||||
Console.WriteLine($" {kv.Key} = {kv.Value}");
|
||||
}
|
||||
});
|
||||
|
||||
await client.StartAsync();
|
||||
|
||||
Console.WriteLine("Current configs:");
|
||||
foreach (var kv in client.GetAll())
|
||||
{
|
||||
Console.WriteLine($" {kv.Key} = {kv.Value}");
|
||||
}
|
||||
|
||||
var dbHost = client.Get("database.host");
|
||||
Console.WriteLine($"\ndatabase.host = {dbHost}");
|
||||
|
||||
Console.WriteLine("\nListening for config changes... (press Ctrl+C to stop)");
|
||||
var cts = new CancellationTokenSource();
|
||||
Console.CancelKeyPress += (s, e) =>
|
||||
{
|
||||
e.Cancel = true;
|
||||
cts.Cancel();
|
||||
};
|
||||
|
||||
try
|
||||
{
|
||||
await Task.Delay(Timeout.Infinite, cts.Token);
|
||||
}
|
||||
catch (TaskCanceledException)
|
||||
{
|
||||
}
|
||||
|
||||
Console.WriteLine("\nShutting down...");
|
||||
client.Stop();
|
||||
@@ -0,0 +1,41 @@
|
||||
# Kenaito Config Center .NET Demo
|
||||
|
||||
演示如何使用 kenaito-conf-dotnet-client 客户端库。
|
||||
|
||||
## 本地运行
|
||||
|
||||
```bash
|
||||
cd kenaito-conf-dotnet-client-demo
|
||||
dotnet run
|
||||
```
|
||||
|
||||
## Docker 运行
|
||||
|
||||
```bash
|
||||
# 在项目根目录执行
|
||||
docker build -f Dockerfile.dotnet -t kenaito-conf-dotnet-demo .
|
||||
|
||||
docker run -it --rm \
|
||||
-e CONFIG_CENTER_BASE_URL=http://host.docker.internal:8080 \
|
||||
kenaito-conf-dotnet-demo
|
||||
```
|
||||
|
||||
## 配置项
|
||||
|
||||
修改 `Program.cs` 中的配置:
|
||||
|
||||
```csharp
|
||||
var config = new Config
|
||||
{
|
||||
BaseUrl = "http://localhost:8080", // 配置中心地址
|
||||
AppName = "kenaito-dotnet-demo", // 应用名称
|
||||
Env = "daily", // 环境
|
||||
SyncInterval = 10 // 同步间隔(秒)
|
||||
};
|
||||
```
|
||||
|
||||
## 功能演示
|
||||
|
||||
- 启动时拉取全量配置并打印
|
||||
- 监听配置变更,实时输出变更内容
|
||||
- 按 Ctrl+C 优雅退出
|
||||
Reference in New Issue
Block a user