Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Bu makalede, hizmet bulmanın bir .NET.NET Aspire projesinde nasıl çalıştığını öğreneceksiniz.
.NET
.NET Aspire, geliştirme ve test zamanında hizmet bulmayı yapılandırma işlevselliğini içerir. Hizmet bulma işlevselliği,
Hizmet bulma yapılandırması yalnızca belirli bir proje tarafından başvurulan hizmetler için eklenir. Örneğin, aşağıdaki AppHost programını göz önünde bulundurun:
var builder = DistributedApplication.CreateBuilder(args);
var catalog = builder.AddProject<Projects.CatalogService>("catalog");
var basket = builder.AddProject<Projects.BasketService>("basket");
var frontend = builder.AddProject<Projects.MyFrontend>("frontend")
.WithReference(basket)
.WithReference(catalog);
Yukarıdaki örnekte, ön uç projesi, katalog projesine ve sepet projesine başvurur. İki WithReference çağrısı, atıfta bulunulan projeler (.NETve .NET Aspire) için hizmet bulma bilgilerini ön yüz projesine iletmesi için projesini yönlendirir.
Bazı hizmetler birden çok adlandırılmış uç noktayı kullanıma sunar. Adlandırılmış uç noktalar, HTTP isteği URI'sinin ana bilgisayar bölümünde uç nokta adı belirtilerek scheme://_endpointName.serviceName
biçiminde çözümlenebilir. Örneğin, "sepet" adlı bir hizmet "pano" adlı bir uç noktayı kullanıma sunarsa, URI https+http://_dashboard.basket
bu uç noktayı belirtmek için kullanılabilir, örneğin:
builder.Services.AddHttpClient<BasketServiceClient>(
static client => client.BaseAddress = new("https+http://basket"));
builder.Services.AddHttpClient<BasketServiceDashboardClient>(
static client => client.BaseAddress = new("https+http://_dashboard.basket"));
Yukarıdaki örnekte biri çekirdek sepet hizmeti, diğeri de sepet hizmetinin panosu için iki HttpClient sınıfı eklenmiştir.
Yapılandırma tabanlı uç nokta çözümleyicisi ile, adlandırılmış uç noktalar, uç nokta değerinin önüne _endpointName.
eklenerek yapılandırmada belirtilebilir; burada endpointName
uç nokta adıdır. Örneğin, varsayılan uç noktayı (adsız) ve "pano" adlı uç noktayı tanımlayan bu appsettings.json yapılandırmasını göz önünde bulundurun:
{
"Services": {
"basket":
"https": "https://10.2.3.4:8080", /* the https endpoint, requested via https://basket */
"dashboard": "https://10.2.3.4:9999" /* the "dashboard" endpoint, requested via https://_dashboard.basket */
}
}
}
Önceki JSON:
https://basket
çözümlendiğinde varsayılan uç nokta 10.2.3.4:8080
.https://_dashboard.basket
aracılığıyla çözümlendiği için 10.2.3.4:9999
konumundadır."var basket = builder.AddProject<Projects.BasketService>("basket")
.WithHttpsEndpoint(hostPort: 9999, name: "dashboard");
Kubernetesdağıtılırken, adlandırılmış uç noktaları çözümlemek için DNS SRV hizmet uç noktası çözümleyicisi kullanılabilir. Örneğin, aşağıdaki kaynak tanımı, "sepet" adlı hizmet üzerindeki "default" ve "pano" adlı uç noktalar için bir DNS SRV kaydı oluşturulmasına neden olacaktır.
apiVersion: v1
kind: Service
metadata:
name: basket
spec:
selector:
name: basket-service
clusterIP: None
ports:
- name: default
port: 8080
- name: dashboard
port: 9999
Bir hizmeti "sepet" hizmetindeki "gösterge paneli" uç noktasını çözümleyecek şekilde yapılandırmak için, DNS SRV hizmet uç noktası çözümleyicisini aşağıdaki şekilde konak oluşturucuya ekleyin.
builder.Services.AddServiceDiscoveryCore();
builder.Services.AddDnsSrvServiceEndpointProvider();
Daha fazla bilgi için bkz. AddServiceDiscoveryCore ve AddDnsSrvServiceEndpointProvider.
"default" özel bağlantı noktası adı, URI https://basket
kullanılarak çözümlenen varsayılan uç noktayı belirtmek için kullanılır.
Önceki örnekte olduğu gibi, sepet hizmeti için bir HttpClient
'ya servis keşfi ekleyin:
builder.Services.AddHttpClient<BasketServiceClient>(
static client => client.BaseAddress = new("https://basket"));
Benzer şekilde, "pano" uç noktası aşağıdaki gibi hedeflenebilir:
builder.Services.AddHttpClient<BasketServiceDashboardClient>(
static client => client.BaseAddress = new("https://_dashboard.basket"));
.NET Aspire geri bildirimi
.NET Aspire, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunEğitim
Öğrenme yolu
Build distributed apps with .NET Aspire - Training
Learn how to build observable, production ready, distributed applications with .NET Aspire. AZ-2009