Conversation
| <UnorderedListItem><Link To="https://puginarug.com/">Ссылка на форк</Link></UnorderedListItem> | ||
| <UnorderedListItem>Номер <Strong>№1 "Кэширование"</Strong></UnorderedListItem> | ||
| <UnorderedListItem>Вариант <Strong>№17 "Транспортное средство"</Strong></UnorderedListItem> | ||
| <UnorderedListItem>Выполнена <Strong>Чукарев Михаил 6511</Strong> </UnorderedListItem> |
There was a problem hiding this comment.
Либо Выполнил, либо нужно склонение поменять
| builder.Services.AddCors(options => | ||
| { | ||
| options.AddDefaultPolicy(policy => | ||
| { | ||
| var allowedOrigins = builder.Configuration | ||
| .GetSection("Cors:AllowedOrigins") | ||
| .Get<string[]>() ?? []; | ||
|
|
||
| policy.WithOrigins(allowedOrigins) | ||
| .AllowAnyMethod() | ||
| .AllowAnyHeader(); | ||
| }); | ||
| }); |
There was a problem hiding this comment.
В принципе настройку cors можно убрать отсюда и вынести в ApiGateway, так как браузер теперь работает с ним, а не с генератором
| public Task<Response<ServiceHostAndPort>> LeaseAsync(HttpContext httpContext) | ||
| { | ||
| var cumulative = 0.0; | ||
| var roll = Random.Shared.NextDouble(); |
There was a problem hiding this comment.
Можно тут домножать на сумму элементов weights, которую по-хорошему вынести в приватное поле
Тогда не нужно будет следить за тем, что сумма весов равна 1
| return Task.FromResult<Response<ServiceHostAndPort>>( | ||
| new OkResponse<ServiceHostAndPort>(services[^1].HostAndPort)); |
There was a problem hiding this comment.
Лучше рандомный сервис тут возвращать, иначе если что-то пойдет не так и эта ветка будет выполняться, то последний сервис будет перегружен
| }); | ||
|
|
||
| var weights = builder.Configuration | ||
| .GetSection("WeightedRandom:Weights") |
There was a problem hiding this comment.
Этот путь до весов не соответствует тому, что в appsettings.json
| ] | ||
| }, | ||
| "WeightedRandom": { | ||
| "vehicles": { |
There was a problem hiding this comment.
Секцию vehicles нужно удалить и перенести секцию Weights в WeightedRandom
| foreach (var port in ports) | ||
| { | ||
| var replica = builder.AddProject<Projects.VehicleApi>($"vehicleapi-{serviceId++}") | ||
| .WithReference(cache) |
| "Microsoft.AspNetCore": "Warning" | ||
| } | ||
| }, | ||
| "ReplicaWeights": [ 0.5, 0.3, 0.2 ], |
There was a problem hiding this comment.
Идея хорошая, но нигде не используется, если получится можно попробовать через переменные окружения передать в приложение, но там возникнут трудности, можно просто убрать отсюда
| .WithHttpEndpoint(port: port, name: "api-endpoint", isProxied: false) | ||
| .WithExternalHttpEndpoints(); | ||
|
|
||
| gateway.WaitFor(replica); |
There was a problem hiding this comment.
Здесь не хватает .WithReference(replica), чтобы aspire прокинул адрес апи в api gateway
Если в aspire поменять порты, то все должно работать, api gateway проект должен достать из переменных окружения, которые пришли от aspire, адреса сервисов и поменять конфигурацию самого api gateway
| * Изучение работы со средствами оркестрации на примере .NET Aspire, | ||
| * Повторение основ работы с системами контроля версий, | ||
| * Интеграционное тестирование. | ||
| ## Лабораторная работа №1 — «Кэширование» |
ФИО: Чукарев Михаил
Номер группы: 6511
Номер лабораторной: 2
Номер варианта: 17
Краткое описание предметной области: Транспортное средство
Краткое описание добавленных фич: