Microsoft.Extensions.ServiceDiscovery.Dns 8.1.0
前缀已预留
dotnet add package Microsoft.Extensions.ServiceDiscovery.Dns --version 8.1.0
NuGet\Install-Package Microsoft.Extensions.ServiceDiscovery.Dns -Version 8.1.0
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery.Dns" Version="8.1.0" />
paket add Microsoft.Extensions.ServiceDiscovery.Dns --version 8.1.0
#r "nuget: Microsoft.Extensions.ServiceDiscovery.Dns, 8.1.0"
// Install Microsoft.Extensions.ServiceDiscovery.Dns as a Cake Addin #addin nuget:?package=Microsoft.Extensions.ServiceDiscovery.Dns&version=8.1.0 // Install Microsoft.Extensions.ServiceDiscovery.Dns as a Cake Tool #tool nuget:?package=Microsoft.Extensions.ServiceDiscovery.Dns&version=8.1.0
Microsoft.Extensions.ServiceDiscovery.Dns
此库提供使用 DNS (域名系统) 解析服务端点的支持。它提供两种服务端点提供者
DNS,它使用 DNS
A/AAAA
记录查询来解析端点。这意味着它可以解析名称到 IP 地址,但不能解析端点的端口号。因此,假定端口号是协议的默认值(例如,HTTP 的 80 和 HTTPS 的 433)。使用 DNS 提供程序的好处是,对于这些默认端口合适的情况,客户端可以将它们的请求分散到不同的主机。有关更多信息,请参阅 使用端点选择器的负载均衡。DNS SRV,它使用 DNS SRV 记录查询来解析服务名称。这使得它可以解析 IP 地址和端口号。这对于支持 DNS SRV 查询的环境很有用,例如 Kubernetes(当相应配置时)。
使用 DNS 解析服务端点
DNS服务端点提供商通过DNS A/AAAA记录查询来解析端点。这意味着它可以解析域名到IP地址,但不能解析端口号码端点。因此,端口号码被认为是协议的默认值(例如,HTTP的80和HTTPS的433)。使用DNS服务端点提供商的好处是,在默认端口适用的情况下,客户端可以分散其请求到不同的主机。关于更多信息,请参阅使用端点选择器进行负载均衡。
要在您的应用程序中配置DNS服务端点提供商,请使用AddDnsServiceEndpointProvider
方法将DNS服务端点提供商添加到主机构建器中的服务集合,如下所示
builder.Services.AddServiceDiscoveryCore();
builder.Services.AddDnsServiceEndpointProvider();
使用DNS SRV在Kubernetes中解析服务端点
在部署到Kubernetes时,可以使用DNS SRV服务端点提供商来解析端点。例如,以下资源定义将在名为"basket"的"basket"服务上创建一个名为"dashboard"和名为"default"的DNS SRV记录。
apiVersion: v1
kind: Service
metadata:
name: basket
spec:
selector:
name: basket-service
clusterIP: None
ports:
- name: default
port: 8080
- name: dashboard
port: 8888
要配置一个服务以解析"basket"服务上的"dashboard"端点,请按如下方式在主机构建器中添加DNS SRV服务端点提供商
builder.Services.AddServiceDiscoveryCore();
builder.Services.AddDnsSrvServiceEndpointProvider();
特殊端口名称"默认"用于指定默认端点,使用URI http://basket
解析。
如前一个示例,为"basket"服务向HttpClient添加服务发现
builder.Services.AddHttpClient<BasketServiceClient>(
static client => client.BaseAddress = new("http://basket"));
类似地,可以这样定位"dashboard"端点
builder.Services.AddHttpClient<BasketServiceDashboardClient>(
static client => client.BaseAddress = new("http://_dashboard.basket"));
反馈 & 贡献
产品 | 版本 兼容的和额外的计算目标框架版本。 |
---|---|
.NET | net8.0兼容。 net8.0-android是计算出来的。 net8.0-browser是计算出来的。 net8.0-ios是计算出来的。 net8.0-maccatalyst是计算出来的。 net8.0-macos是计算出来的。 net8.0-tvos是计算出来的。 net8.0-windows是计算出来的。 |
-
net8.0
- DnsClient (>= 1.8.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
- Microsoft.Extensions.Options (>= 8.0.2)
- Microsoft.Extensions.Primitives (>= 8.0.0)
- Microsoft.Extensions.ServiceDiscovery (>= 8.1.0)
- Microsoft.Extensions.ServiceDiscovery.Abstractions (>= 8.1.0)
NuGet包
此包未被任何NuGet包使用。
GitHub仓库
此包未被任何流行的GitHub仓库使用。
版本 | 下载 | 最后更新 |
---|---|---|
8.1.0 | 1,293 | 7/23/2024 |
8.0.2 | 847 | 6/28/2024 |
8.0.1 | 5,199 | 5/21/2024 |
8.0.0 | 162 | 5/21/2024 |
8.0.0-preview.7.24251.11 | 167 | 5/7/2024 |
8.0.0-preview.6.24214.1 | 318 | 4/23/2024 |
8.0.0-preview.5.24201.12 | 1,673 | 4/9/2024 |
8.0.0-preview.4.24156.9 | 495 | 3/12/2024 |
8.0.0-preview.3.24105.21 | 2,341 | 2/13/2024 |
8.0.0-preview.2.23619.3 | 1,384 | 12/20/2023 |
8.0.0-preview.1.23557.2 | 1,470 | 11/14/2023 |