节点在线、应用在线、配置在线使用令牌查询
|
# Stardust SDK æž¶æž„
> 版本:v1.0 | 日期:2026-07-15
> 对应模å—:SDK åˆ†å¸ƒå¼æ ¸å¿ƒ SDK
> 相关文档:[NODE-16-阿里云DNS动æ€åŸŸåè§£æž](/NewLife/Stardust/Blob/master/Doc/NODE-16-阿里云DNS动æ€åŸŸåè§£æž.md)
---
## 1. 概述
Stardust SDK 包å«ä¸¤ä¸ª NuGet 包:
| 包å | 说明 | ç›®æ ‡æ¡†æž¶ |
|------|------|----------|
| `NewLife.Stardust` | æ ¸å¿ƒåº“ï¼ˆæ— ASP.NET Core ä¾èµ–) | net45+ / netstandard2.0+ |
| `NewLife.Stardust.Extensions` | ASP.NET Core 扩展 | netcoreapp3.1+ ~ net10.0 |
SDK æä¾›ï¼šé…置拉å–ã€æœåŠ¡æ³¨å†Œä¸Žå‘现ã€è°ƒç”¨è¿½è¸ªï¼ˆAPMï¼‰ã€æ€§èƒ½ç›‘æŽ§ã€æ—¥å¿—上报ã€äº‹ä»¶æ€»çº¿ç‰èƒ½åŠ›ã€‚
---
## 2. æ ¸å¿ƒç»„ä»¶
### 2.1 客户端类
```
┌──────────────────────────────────────────────────â”
│ StarFactory │
│ 统一入å£ï¼šStarSetting + StarClient + StarTracer │
└──────────┬───────────────────────────────────────┘
│
┌──────┴──────â”
â–¼ â–¼
┌──────────┠┌──────────â”
│StarClient│ │ AppClient│
│ 连接/心跳 │ │ 应用客户端│
│ 令牌刷新 │ │ é…ç½®/注册 │
└──────────┘ └──────────┘
│ │
â–¼ â–¼
┌──────────────────────────────────────────────────â”
│ åŠŸèƒ½æ¨¡å— â”‚
│ StarHttpConfigProvider (é…置拉å–) │
│ IRegistry (æœåŠ¡æ³¨å†Œå‘现) │
│ StarTracer (调用追踪) │
│ TraceService (追踪上报) │
│ StarEventBus (事件总线) │
│ AliyunDnsClient (DDNS) │
└──────────────────────────────────────────────────┘
```
### 2.2 组件详情
| 组件 | 命å空间 | 说明 |
|------|----------|------|
| `StarFactory` | `Stardust` | 统一工厂,读å–é…ç½®ã€åˆ›å»º Client å’Œ Tracer |
| `StarClient` | `Stardust` | æ ¸å¿ƒå®¢æˆ·ç«¯ï¼Œç®¡ç†è¿žæŽ¥/心跳/令牌刷新 |
| `AppClient` | `Stardust` | 业务应用客户端,å°è£…é…置拉å–/注册å‘现 |
| `StarSetting` | `Stardust` | é…置管ç†ï¼ˆServer/AppKey/Secret) |
| `StarHttpConfigProvider` | `Stardust.Configs` | HTTP é…ç½®æä¾›è€… |
| `IRegistry` | `Stardust.Registry` | æœåŠ¡æ³¨å†Œä¸Žå‘çŽ°æŽ¥å£ |
| `StarTracer` | `Stardust.Monitors` | APM 追踪器 |
| `StarEventBus` | `Stardust.Services` | 事件总线 |
---
## 3. 接入方å¼
### 3.1 ASP.NET Core 应用
```csharp
// 1. 注册æœåŠ¡
var star = builder.Services.AddStardust("MyApp");
// 2. 使用ä¸é—´ä»¶
app.UseStardust();
// 3. 注册æœåŠ¡
app.RegisterService("MyService");
// 4. 消费æœåŠ¡
var services = app.ConsumeService("OtherService");
```
### 3.2 控制å°/Service 应用
```csharp
var star = new StarFactory {
Server = "http://star.newlifex.com:6600",
AppKey = "MyApp",
Secret = "xxx"
};
// 创建客户端
var client = star.Create();
await client.Login();
```
---
## 4. é…ç½®ä¸å¿ƒå®¢æˆ·ç«¯
```
应用å¯åЍ → StarHttpConfigProvider.GetConfig()
→ 请求 StarServer /config/getall
→ 缓å˜é…置到本地
→ å®šæ—¶è½®è¯¢å˜æ›´
```
- 支æŒç‰ˆæœ¬å·å¢žé‡æ›´æ–°
- é…ç½®å˜æ›´å›žè°ƒäº‹ä»¶
- 本地缓å˜å…œåº•
---
## 5. 追踪 (APM) 客户端
### 5.1 自动埋点
`StarTracer` 通过 .NET 的 `DiagnosticListener` 自动采集以下框架的调用:
| 监å¬å™¨ | ç›®æ ‡æ¡†æž¶ |
|--------|----------|
| `HttpDiagnosticListener` | `HttpClient` / `HttpWebRequest` |
| `SqlClientDiagnosticListener` | ADO.NET SQL Server |
| `RedisDiagnosticListener` | NewLife.Redis / StackExchange.Redis |
| `AspNetCoreDiagnosticListener` | ASP.NET Core 请求 |
| `EfCoreDiagnosticListener` | Entity Framework Core |
| `GrpcDiagnosticListener` | gRPC |
| `MongoDbDiagnosticListener` | MongoDB Driver |
| `SocketEventListener` | Socket 网络通信 |
### 5.2 æ•°æ®æµ
```
应用调用 → DiagnosticListener æ•获 → StarTracer 本地统计
→ æ¯ 60 秒批é‡ä¸ŠæŠ¥ → TraceController.Report()
→ æœåŠ¡ç«¯èšåˆè®¡ç®—
```
---
## 6. ASP.NET Core 扩展
`Stardust.Extensions` æä¾›çš„ä¸é—´ä»¶ï¼š
| 方法 | 说明 |
|------|------|
| `AddStardust()` | 注入 StarClientã€StarTracer,注册é…ç½®æœåŠ¡ |
| `UseStardust()` | å¯ç”¨è¿½è¸ªä¸é—´ä»¶ï¼Œè‡ªåŠ¨åˆ›å»º Span |
| `RegisterService()` | 注册当å‰åº”用为æœåŠ¡æä¾›è€… |
| `ConsumeService()` | 消费指定æœåŠ¡ï¼Œè¿”å›žå¯ç”¨åœ°å€åˆ—表 |
|