distributed-computing/tasks/klementeva-ja/lab_3/README.md
2023-12-16 11:45:24 +04:00

76 lines
2.7 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 REST API, Gateway и синхронный обмен между микросервисами
Выполнила студентка гр. ИСЭбд-41 Клементьева Ж.А.
## Создание микросервисов
Создание микросервисов было реализовано следующим образом:
1. С помощью команды `dotnet new web -n worker-2` в терминале создала первый микросервис, где решение добавила командой `dotnet new sln`.
2. Также использовала данную команду: `dotnet sln worker-2.sln add worker-2.csproj` с целью связки решения и проекта.
3. Аналогичные действия были совершены со вторым микросервисом.
4. Были добавлены библиотеки Swagger и OpenAi в проекты.
5. Также проект был запущен с помощью команды `dotnet run`.
Скриншоты микросервисов worker 1 и worker 2:
![](pic/1.png)
![](pic/2.png)
Путь localhost:8080:
![](pic/3.png)
![](pic/4.png)
## Синхронный обмен
Также мною был реализован код, вызывающий сихронно данные из соседнего микросервиса.
```cs
//worker-2
app.MapGet("/Requests/", async () =>
{
var httpClient = new HttpClient();
var secondWorkerResponse = await httpClient.GetStringAsync("http://worker-1:8080/");
return secondWorkerResponse.ToArray();
})
.WithName("GetRequests")
.WithOpenApi();
```
## Реализация gateway, используя nginx
Мною был добавлен nginx.conf:
```conf
server {
listen 8080;
listen [::]:8080;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /worker-1/ {
proxy_pass http://worker-1:8080/;
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:8080/;
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;
}
}
```
После выполнения команды `docker-compose up` были получены такие результаты:
Результат worker1:
![](pic/5.png)
Результат worker2:
![](pic/6.png)