.. | ||
document-service | ||
nginx-conf | ||
opop-service | ||
docker-compose.yml | ||
README.md |
Лабораторная работа №3, ПИбд-42 Тепечин Кирилл
Сервисы
opop-service
document-service
Синхронный обмен между микросервисами
Синхронное взаимодействие осуществляется через RestTemplate
Пример взаимодействия:
RestTemplate restTemplate = new RestTemplate();
String URL = "http://document-service:8081/document/";
restTemplate.getForObject(URL+ opopDto.getDocumentId(), DocumentInfo.class)
Докерфайлы
FROM eclipse-temurin:17-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
docker-compose файл
version: '3'
services:
opop-service:
build:
context: /opop-service
dockerfile: Dockerfile
args:
JAR_FILE: build/libs/*.jar
ports:
- "8080:8080"
networks:
- my-network
environment:
server.forward-headers-strategy: framework
document-service:
build:
context: /document-service
dockerfile: Dockerfile
args:
JAR_FILE: build/libs/*.jar
ports:
- "8081:8081"
networks:
- my-network
environment:
server.forward-headers-strategy: framework
nginx:
image: nginx
ports:
- "80:80"
networks:
- my-network
volumes:
- ./nginx-conf:/etc/nginx/conf.d
depends_on:
- opop-service
- document-service
networks:
my-network:
driver: bridge
nginx.conf
server {
listen 80;
location /opop-service/ {
proxy_pass_request_headers on;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Prefix '/opop-service';
proxy_pass http://opop-service:8080/;
}
location /document-service/ {
proxy_pass_request_headers on;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Prefix '/document-service';
proxy_pass http://document-service:8081/;
}
}
Ссылка на видео
https://vk.com/video170089763_456239482?list=ln-0DBU1KuruzjrZvKRLE