https://github.com/vinnilmg/ms-course
https://github.com/vinnilmg/ms-course
java java-11
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/vinnilmg/ms-course
- Owner: vinnilmg
- Created: 2023-08-23T00:19:55.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-20T01:18:15.000Z (over 2 years ago)
- Last Synced: 2025-10-18T17:09:18.738Z (9 months ago)
- Topics: java, java-11
- Language: Java
- Homepage:
- Size: 145 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MS-COURSE
### Curso
https://www.udemy.com/share/103FNT3@-30JpKbA1NX-PT3aw6c82DDMSEztllLcUilEWFLgCQ8Re1OUA5zt-56brk6xVgPz/
### Descrição dos microsserviços
hr-api-gateway-zuul
Centraliza as chamadas aos serviços hr-user, hr-payroll, hr-worker e hr-oauth.
hr-config-server
Busca as propriedades de configuração dos projetos, todas estão armazenadas no github.
hr-eureka-server
Gerencia o status, localização e balanceamento de carga dos serviços clientes.
hr-oauth
Microsserviço responsável pela autenticação do usuário e gerar o JWT.
hr-payroll
Microsserviço responsável por gerenciar a folha de pagamento.
hr-user
Microsserviço responsável por gerenciar os usuários.
hr-worker
Microsserviço responsável por gerenciar os trabalhadores.
### Versões utilizadas
- Java 11
- Spring Boot 2.3.4.RELEASE
### SQL
Insert de trabalhadores:
```sql
INSERT INTO tb_worker(name, daily_income) VALUES('Maria', 4500.0);
INSERT INTO tb_worker(name, daily_income) VALUES('Marcio', 15000.0);
INSERT INTO tb_worker(name, daily_income) VALUES('Vini', 10000.0);
```
Insert de usuários, funcões e many to many:
```sql
INSERT INTO tb_user (name, email, password) VALUES ('Jon Snow', 'jonsnow@email.com', '$2a$12$5WriKe32Ben26zZADrFp8.t7lXfI5Qgh13yYtaDHODWA.Lfl/fU5S');
INSERT INTO tb_user (name, email, password) VALUES ('Luffy', 'pirateking@email.com', '$2a$12$wixBYwic3YTQE7I9kY6dJOxeQkJNQ7C9CiwZSIqSdjK7AIITQwAlm');
INSERT INTO tb_role (role_name) VALUES ('OPERATOR');
INSERT INTO tb_role (role_name) VALUES ('ADMIN');
INSERT INTO tb_user_role (user_id, role_id) VALUES (1, 1);
INSERT INTO tb_user_role (user_id, role_id) VALUES (2, 1);
INSERT INTO tb_user_role (user_id, role_id) VALUES (2, 2);
```
### Eureka Server
Dashboard: http://localhost:8761/
### Rota de autenticação
Endpoint: /hr-oauth/oauth/token
### Variáveis de ambiente
Criar:
```
setx {VARIAVEL} {VALOR}
```
Exibir:
```
echo %{VARIAVEL}%
```
### Testando o CORS
```
fetch("http://localhost:8765/hr-worker/workers", {
"headers": {
"accept": "*/*",
"accept-language": "en-US,en;q=0.9,pt-BR;q=0.8,pt;q=0.7",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "cross-site"
},
"referrer": "http://localhost:3000",
"referrerPolicy": "no-referrer-when-downgrade",
"body": null,
"method": "GET",
"mode": "cors",
"credentials": "omit"
});
```
### Docker
Buildar os projetos:
```
mvnw clean package
mvnw clean package -DskipTests
```
Comandos utilizados:
- Criar rede "hr-net":
```
docker network create hr-net
```
- Rodar o container com a imagem do banco:
```
docker run -p 5432:5432 --name hr-worker-pg12 --network hr-net -e POSTGRES_PASSWORD={PASSW} -e POSTGRES_DB=db_hr_worker postgres:12-alpine
docker run -p 5433:5432 --name hr-user-pg12 --network hr-net -e POSTGRES_PASSWORD={PASSW} -e POSTGRES_DB=db_hr_user postgres:12-alpine
```
- Gerar as imagens dos projetos:
```
docker build -t hr-config-server:v1 .
docker build -t hr-eureka-server:v1 .
docker build -t hr-worker:v1 .
docker build -t hr-user:v1 .
docker build -t hr-payroll:v1 .
docker build -t hr-oauth:v1 .
docker build -t hr-api-gateway-zuul:v1 .
```
- Rodar o container com cada imagem criada:
```
docker run -p 8888:8888 --name hr-config-server --network hr-net -e GIT_USERNAME={USER} -e GIT_ACCESS_TOKEN={TOKEN} hr-config-server:v1
docker run -p 8761:8761 --name hr-eureka-server --network hr-net hr-eureka-server:v1
docker run -P --network hr-net hr-worker:v1
docker run -P --network hr-net hr-user:v1
docker run -P --network hr-net hr-payroll:v1
docker run -P --network hr-net hr-oauth:v1
docker run -p 8765:8765 --name hr-api-gateway-zuul --network hr-net hr-api-gateway-zuul:v1
```