distributed-computing/tasks/voronkova-es/lab_3/README.md
2023-12-18 23:14:17 +04:00

70 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Отчет по лабораторной работе №3
Выполнила студентка гр. ИСЭбд-41 Воронкова Е.С.
## REST API, Gateway и синхронный обмен между микросервисами
## Создание микросервисов
1. С помощью команды `dotnet new web -n worker-1` в терминале был создан первый микросервис
2. В папке созданного проекта добавлено решение командой `dotnet new sln`
3. Затем связали решение и проект командой `dotnet sln worker-2.sln add worker-1.csproj`
4. Повторили те же действия для второго микросервиса
5. Добавили библиотеку Swagger и OpenAi в обе папки проектов и запустили с помощью команды `dotnet run`
Моя предметная область - Медицина. Реализовала две сущности - лекарство и аптека
Скриншоты протестированных микросервисов:
Worker-1:
![](images/screen_1.png)
Worker-2:
![](images/screen_2.png)
## Реализация синхронного обмена
Был реализован код, который вызывает сихронно данные из соседнего микросервиса
```cs
//worker-2
app.MapGet("/Requests/", async () =>
{
var httpClient = new HttpClient();
var secondWorkerResponse = await httpClient.GetStringAsync("http://worker-1:8085/");
return secondWorkerResponse;
});
```
## Реализация gateway при помощи nginx
Добавила nginx.conf:
```conf
server {
listen 8085;
listen [::]:8085;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /worker-1/ {
proxy_pass http://worker-1:8085/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Prefix /worker-1;
}
location /worker-2/ {
proxy_pass http://worker-2:8085/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Prefix /worker-2;
}
}
```