![]() |
VOOZH | about |
dotnet add package QYQ.Base.Consul --version 8.3.2
NuGet\Install-Package QYQ.Base.Consul -Version 8.3.2
<PackageReference Include="QYQ.Base.Consul" Version="8.3.2" />
<PackageVersion Include="QYQ.Base.Consul" Version="8.3.2" />Directory.Packages.props
<PackageReference Include="QYQ.Base.Consul" />Project file
paket add QYQ.Base.Consul --version 8.3.2
#r "nuget: QYQ.Base.Consul, 8.3.2"
#:package QYQ.Base.Consul@8.3.2
#addin nuget:?package=QYQ.Base.Consul&version=8.3.2Install as a Cake Addin
#tool nuget:?package=QYQ.Base.Consul&version=8.3.2Install as a Cake Tool
QYQ.Base.Consul 提供基于 Consul 的服务注册与发现扩展,封装了客户端初始化、HTTP 与 gRPC 代理注册以及常用的调度策略配置,方便在 ASP.NET Core 应用中快速启用服务治理能力。
dotnet add package QYQ.Base.Consul --version 8.3.1
在 appsettings.json 中按默认节名 ConsulOptions 配置 Consul 连接与代理信息:
{
"ConsulOptions": {
"ConsulAddress": "http://localhost:8500",
"Token": "",
"HostIPAddress": "192.168.1.10",
"ConsulAgents": [
{
"AgentCategory": 0,
"ServiceId": "sample-api",
"ServiceName": "sample-api",
"Port": 5000,
"Tags": ["http"],
"Meta": { "Env": "dev" }
},
{
"AgentCategory": 1,
"ServiceId": "sample-grpc",
"ServiceName": "sample-grpc",
"Port": 6000,
"Tags": ["grpc"],
"Meta": { "Env": "dev" }
}
]
}
}
在 Program.cs 中添加基础客户端初始化:
var builder = WebApplication.CreateBuilder(args);
// 读取 ConsulOptions 节并注册 ConsulClient
builder.AddQYQConsul();
var builder = WebApplication.CreateBuilder(args);
builder.AddQYQConsul();
// 注册 HTTP 代理并托管健康检查注销逻辑
builder.AddQYQConsulHttp();
var app = builder.Build();
app.MapGet("/api/Health", () => Results.Ok("healthy"));
app.Run();
var builder = WebApplication.CreateBuilder(args);
builder.AddQYQConsul();
// 注册 gRPC 代理并托管健康检查注销逻辑
builder.AddQYQConsulgRPC();
var app = builder.Build();
app.MapGrpcService<GreeterService>();
app.MapGet("/api/Health", () => "healthy");
app.Run();
AddConsulGrpcClient 现支持通过可选的 ServiceConfig 委托自定义重试策略或禁用重试,内部仍会自动注入 Consul 解析与轮询负载均衡配置:
// 自定义重试策略
services.AddConsulGrpcClient<Team.TeamClient>("team", "team-service", configuration, serviceConfig =>
{
serviceConfig.MethodConfigs.Add(new MethodConfig
{
Names = { MethodName.Default },
RetryPolicy = new RetryPolicy
{
MaxAttempts = 3,
InitialBackoff = TimeSpan.FromSeconds(0.5),
MaxBackoff = TimeSpan.FromSeconds(2),
BackoffMultiplier = 1.2,
RetryableStatusCodes = { StatusCode.Unavailable }
}
});
});
// 禁用重试
services.AddConsulGrpcClient<GamePlayClient>("game", "game-service", configuration, serviceConfig =>
{
serviceConfig.MethodConfigs.Clear();
});
ConsulOptions 是默认配置节名,可通过传入其他节名覆写。ConsulAddress 与可选的 Token 用于连接 Consul 服务器,HostIPAddress 可显式指定注册地址。ConsulAgents 列表区分 AgentCategory(HTTP=0,GRPC=1),ServiceId 应保证唯一,ServiceName 需与 Consul 中的期望名称一致。Port 与健康检查路径/协议匹配:HTTP 示例使用 /api/Health,gRPC 示例需暴露对应端口供 Consul GRPC 健康检查。AddConsulDispatcher 配置轮询或平均等策略,以便客户端侧负载均衡。| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 net6.0 is compatible. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 is compatible. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 8.3.2 | 207 | 3/9/2026 |
| 8.3.1 | 265 | 12/12/2025 |
| 8.2.6 | 863 | 6/11/2025 |
| 8.2.5 | 398 | 6/11/2025 |
| 8.2.4 | 398 | 6/11/2025 |
| 8.2.3 | 207 | 6/6/2025 |
| 8.2.2 | 251 | 6/5/2025 |
| 8.2.1 | 238 | 6/5/2025 |
| 8.2.0 | 228 | 6/5/2025 |
| 8.1.6 | 234 | 5/28/2025 |
| 8.1.5 | 206 | 5/28/2025 |
| 8.1.4 | 233 | 5/27/2025 |
| 8.1.3 | 228 | 5/27/2025 |
| 8.1.2 | 225 | 5/27/2025 |
| 8.1.1 | 243 | 5/21/2025 |
| 8.1.0 | 216 | 5/21/2025 |
| 8.0.9 | 246 | 5/21/2025 |
| 8.0.8 | 254 | 4/6/2025 |