Coder Social home page Coder Social logo

pdavinunes / lagom-microservices-example Goto Github PK

View Code? Open in Web Editor NEW

This project forked from insightlab/lagom-microservices-example

0.0 1.0 0.0 1.05 MB

Lagom Microservices Example

Scala 25.18% JavaScript 16.34% HTML 0.81% TypeScript 42.88% CSS 12.68% Dockerfile 0.39% Python 1.72%

lagom-microservices-example's Introduction

Link

Segue o link onde me apresento e apresento minhas contribuições

https://youtu.be/uqTo54THEK0

Aplicação Demo

Esta aplicação foi criada com o intuito de demonstrar as diferenças e características entre aplicações monolíticas e as que seguem a arquitetura de microsserviços, representadas respectivamente pelas tecnologias Node.js e Lagom em sua versão para a linguagem Scala.

índice


Desenvolvimento

Pré-requisitos

Possuir instalados

  • Node.js versão 10.0 ou superior
  • Yarn versão 1.22 ou superior
  • MongoDB versão 4.0 ou superior
  • Python 3 com as bibliotecas Pandas, Requests e Pymongo já instaladas. Você pode configurar um ambiente do Miniconda, se preferir.

Iniciando Servidor Node.js

Passo 1

Inicie o MongoDB na sua máquina e se certique que ele está disponível no host localhost e na porta 27017, essas são as configurações padrões. Caso contrário, você deve modificar essas configurações no servidor no passo a seguir.

Passo 2

Popule o banco de dados com as linhas e paradas dos ônibus de São Paulo. Este passo só precisa ser realizado uma única vez. Estando na raiz do projeto, execute o comando (isso deve demorar um pouco):

Linux e MacOs:

MONGO_HOST=localhost MONGO_PORT=27017 MONGO_DB=bmap python data-seed/trip_seed.py

Windows (Powershell):

$env:MONGO_HOST='localhost'; $env:MONGO_PORT='27017'; $env:MONGO_DB='bmap'; python data-seed/trip_seed.py

Passo 3

Entre na pasta /nodejs-api copie todo o conteúdo do arquivo .env.example para um novo arquivo .env. Substitua os "???" da variável API_OLHO_VIVO_TOKEN pelo seu token. Na seção Produção > Iniciar serviços logo abaixo é explicado como conseguí-lo.

Passo 4

Instale os módulos necessários. Já dentro da pasta /nodejs-api execute o seguinte comando:

yarn

Passo 5

Inicie a aplicação:

node index.js

Iniciando Webapp

Passo 1

Entre na pasta /webapp e crie o arquivo .env.development.local com o seguinte conteúdo:

REACT_APP_SERVER_HOST=localhost:5000

Passo 2

Instale os módulos necessários. Já dentro da pasta /webapp, execute o seguinte comando:

yarn

Passo 3

Inicie o servidor como mostrado na seção anterior.

Passo 4

Inicie a aplicação:

yarn start

Assim, basta acessar http://localhost:3000.


Produção

Pré-requisitos

Possuir instalados

Iniciar serviços

Antes de iniciar os serviços é necessário definir corretamente as variáveis de ambiente. Para isso, crie localmente um arquivo .env e preencha-o com o mesmo conteúdo do arquivo .env.example já existente substituindo cada "???" pelo seu respectivo valor esperado:

Após isso, basta subir as aplicações utilizando o docker-compose como segue.

Utilizando Node.js como servidor

docker-compose -f common-services.yml -f docker-compose-node.yml up

Utilizando Lagom como servidor

No caso da aplicação Lagom, antes de iniciar os serviços é necessário gerar a imagem do microsserviço utilizando o módulo sbt-native-packager.

Para isso acesse o diretório do projeto e execute o comando responsável por publicar a imagem localmente:

cd lagom-api
sbt docker:publishLocal

Após isso, verifique se a imagem foi criada corretamente com o comando

docker images

O retorno deve ser algo como:

REPOSITORY TAG IMAGE ID CREATED SIZE
spbus-impl 1.0-SNAPSHOT d193c3623031 About an hour ago 597MB
... ... ... ... ...

Com a imagem publicada, basta iniciar os serviços:

docker-compose -f common-services.yml -f docker-compose-lagom.yml up

Acessando a aplicação Web

Com todos os serviços no ar, basta acessar http://localhost/ no navegador.


Troubleshooting

Entro na aplicação, porém nenhum parada é mostrada.

Isso pode acontecer devido a algum problema nas requisições com o servidor.

  1. Verifique se o servidor está no ar.
  2. Verifique se o MongoDB também está funcionando.
  3. Verifique os passos logo abaixo.

Clico em todas as paradas, mas nenhuma tem ônibus previstos.

Isso pode acontecer devido a algum problema nas requisições com a API Olho Vivo.

  1. Verifique sua conexão com a internet.
  2. Vá para o passo logo abaixo.

Meu token não funciona.

Para saber se seu token está funcionando faça uma requisição HTTP POST para http://api.olhovivo.sptrans.com.br/v2.1/Login/Autenticar?token={token} substituindo {token} pelo seu token. Se retornado true, este está funcionando e false significa algum problema na autenticação.

Saiba que a liberação deste pode demorar algumas horas após sua criação.

lagom-microservices-example's People

Contributors

pdavinunes avatar samirbraga avatar regispires avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.