Оқиға
Интеллектуалды бағдарламаларды құру
Mar 17, 9 PM - Mar 21, 10 AM
Нақты пайдалану жағдайлары негізінде масштабты ИСК шешімдерін құру үшін стипендиаттармен және сарапшылармен кездесу сериясына қосылыңыз.
Қазір тіркелуБұл браузерге бұдан былай қолдау көрсетілмейді.
Соңғы мүмкіндіктерді, қауіпсіздік жаңартуларын және техникалық қолдауды пайдалану үшін Microsoft Edge браузеріне жаңартыңыз.
Из этой статьи вы узнаете, как работает обнаружение служб в проекте .NET.NET Aspire. .NET .NET Aspire включает функции для настройки обнаружения служб во время разработки и тестирования. Функциональность обнаружения служб работает, предоставляя конфигурацию в формате, ожидаемом резолвером конечных точек на основе конфигурации из проекта AppHost .NET.NET Aspire. Эта конфигурация применяется в индивидуальных проектах службы, добавленных в модель приложения. Дополнительную информацию см. в разделе «Обнаружение служб в .NET».
Конфигурация обнаружения служб добавляется только для служб, на которые ссылается данный проект. Например, рассмотрим следующую программу AppHost:
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);
В предыдущем примере интерфейсный проект
Некоторые службы предоставляют несколько именованных конечных точек. Именованные конечные точки можно разрешить, указав имя конечной точки в части узла HTTP-запроса URI, согласно формату scheme://_endpointName.serviceName
. Например, если служба с именем "корзина" предоставляет конечную точку с именем "панель мониторинга", URI https+http://_dashboard.basket
можно использовать для указания этой конечной точки, например:
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"));
В предыдущем примере добавляются два класса HttpClient, один для основной службы корзины и один для панели мониторинга службы корзины.
С помощью конфигурационного сопоставителя конечных точек именованные конечные точки можно указать в конфигурации, префиксируя значение конечной точки, начиная с _endpointName.
, где endpointName
— имя точки. Например, рассмотрим эту appsettings.json конфигурацию, определяющую конечную точку по умолчанию (без имени) и конечную точку с именем "панель мониторинга":
{
"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 */
}
}
}
В предыдущем JSON:
https://basket
является 10.2.3.4:8080
.https://_dashboard.basket
, — это 10.2.3.4:9999
.var basket = builder.AddProject<Projects.BasketService>("basket")
.WithHttpsEndpoint(hostPort: 9999, name: "dashboard");
При развертывании в Kubernetesрезольвер конечной точки службы DNS SRV можно использовать для разрешения именованных конечных точек. Например, следующее определение ресурса приведет к созданию записи DNS SRV для конечной точки с именем "default" и конечной точки с именем "dashboard", обе в сервисе с именем "корзина".
apiVersion: v1
kind: Service
metadata:
name: basket
spec:
selector:
name: basket-service
clusterIP: None
ports:
- name: default
port: 8080
- name: dashboard
port: 9999
Чтобы настроить службу для разрешения конечной точки "dashboard" на службе "корзины", добавьте сопоставитель конечной точки службы DNS SRV в конфигуратор узла следующим образом:
builder.Services.AddServiceDiscoveryCore();
builder.Services.AddDnsSrvServiceEndpointProvider();
Дополнительные сведения см. в AddServiceDiscoveryCore и AddDnsSrvServiceEndpointProvider.
Специальное имя порта "default" используется для указания конечной точки по умолчанию, определяемой с использованием URI https://basket
.
Как и в предыдущем примере, добавьте функцию поиска служб в HttpClient
для сервиса корзины.
builder.Services.AddHttpClient<BasketServiceClient>(
static client => client.BaseAddress = new("https://basket"));
Аналогичным образом конечная точка панели мониторинга может быть нацелена следующим образом:
builder.Services.AddHttpClient<BasketServiceDashboardClient>(
static client => client.BaseAddress = new("https://_dashboard.basket"));
.NET Aspire кері байланысы
.NET Aspire — бастапқы коды ашық жоба. Пікір қалдыру үшін сілтемені таңдаңыз:
Оқиға
Интеллектуалды бағдарламаларды құру
Mar 17, 9 PM - Mar 21, 10 AM
Нақты пайдалану жағдайлары негізінде масштабты ИСК шешімдерін құру үшін стипендиаттармен және сарапшылармен кездесу сериясына қосылыңыз.
Қазір тіркелуОқыту
Оқыту бағдарламасы
Build distributed apps with .NET Aspire - Training
Learn how to build observable, production ready, distributed applications with .NET Aspire. AZ-2009