{"id":20225256,"url":"https://github.com/lubrum/microservicos-java-spring","last_synced_at":"2026-04-10T07:44:20.922Z","repository":{"id":198935627,"uuid":"701776004","full_name":"Lubrum/microservicos-java-spring","owner":"Lubrum","description":"Projeto da Alura de Microsserviços na prática: implementando com Java e Spring e RabbitMQ","archived":false,"fork":false,"pushed_at":"2024-02-25T15:13:59.000Z","size":121,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T12:45:31.949Z","etag":null,"topics":["docker","docker-compose","flyway","java","mysql","openfeign","rabbitmq","spring","spring-boot","spring-cloud","spring-cloud-eureka","spring-cloud-gateway","spring-web","springboot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lubrum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-10-07T14:20:22.000Z","updated_at":"2024-01-14T04:14:34.000Z","dependencies_parsed_at":"2023-10-15T02:02:56.867Z","dependency_job_id":null,"html_url":"https://github.com/Lubrum/microservicos-java-spring","commit_stats":null,"previous_names":["lubrum/microservicos-java-spring"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Lubrum/microservicos-java-spring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lubrum%2Fmicroservicos-java-spring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lubrum%2Fmicroservicos-java-spring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lubrum%2Fmicroservicos-java-spring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lubrum%2Fmicroservicos-java-spring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lubrum","download_url":"https://codeload.github.com/Lubrum/microservicos-java-spring/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lubrum%2Fmicroservicos-java-spring/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266039012,"owners_count":23867815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","flyway","java","mysql","openfeign","rabbitmq","spring","spring-boot","spring-cloud","spring-cloud-eureka","spring-cloud-gateway","spring-web","springboot"],"created_at":"2024-11-14T07:12:00.553Z","updated_at":"2026-04-10T07:44:15.891Z","avatar_url":"https://github.com/Lubrum.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projeto de microserviços com Java, Spring, Rabbitmq, Eureka, Gateway, OpenFeign, Docker, MySQL e Flyway.\n\n# Para executar o projeto\n\n1. Rode um banco de dados mysql em um container Docker:\n\n```sh\ndocker run -d -p 3320:3320 --name mysql-container -e MYSQL_ROOT_PASSWORD=root mysql:8.1.0\n```\n\n2. Suba o RabbitMQ em um container Docker:\n\n```sh\ncd rabbit \u0026\u0026 docker compose up -d\n```\n\n3. Inicialize os módulos deste projeto. Basta dar run em cada um deles nesta ordem:\n\n- eureka-server-run;\n- gateway-run;\n- pedidos-run;\n- avaliacao-run;\n- pagamentos-run;\n\n4. Teste as APIs conforme modelos disponibilizados no diretório .postman para uso e testes no Postman.\n\n5. Avalie também as filas do RabbitMQ no Admin em localhost:15672 e nos logs das aplicações pedidos e avaliações que possuem listener em eventos de pagamentos.\n\n## Passos para criação de um cluster com três nós do RabbitMQ:\n\n1. Criar containers do rabbitmq:\n\n```sh\ndocker network create alura\ndocker run -d --rm --net alura --hostname rabbit1 --name rabbit1 -p 8085:15672 -e RABBITMQ_ERLANG_COOKIE=alura_secret rabbitmq:3.10-management\ndocker run -d --rm --net alura --hostname rabbit2 --name rabbit2 -p 8086:15673 -e RABBITMQ_ERLANG_COOKIE=alura_secret rabbitmq:3.10-management\ndocker run -d --rm --net alura --hostname rabbit3 --name rabbit3 -p 8087:15674 -e RABBITMQ_ERLANG_COOKIE=alura_secret rabbitmq:3.10-management\n```\n\n2. Criar um cluster com três nós, unindo os containers 'rabbit2' e 'rabbit3' do RabbitMQ ao container 'rabbit1':\n\n```sh\ndocker exec -it rabbit2 rabbitmqctl stop_app\ndocker exec -it rabbit2 rabbitmqctl reset\ndocker exec -it rabbit2 rabbitmqctl join_cluster rabbit@rabbit1\ndocker exec -it rabbit2 rabbitmqctl start_app\n\ndocker exec -it rabbit3 rabbitmqctl stop_app\ndocker exec -it rabbit3 rabbitmqctl reset\ndocker exec -it rabbit3 rabbitmqctl join_cluster rabbit@rabbit1\ndocker exec -it rabbit3 rabbitmqctl start_app\n```\n\n3. Para que os nós assumam mensagens de que ficarem indisponíveis:\n\nAbrir o RabbitMQ Admin no browser no localhost:15672 (endereço do 'rabbit1').\n\nRabbitMQ Admin -\u003e Policies -\u003e Add / Update a policy:\n\n\u003e Name: ha\n\u003e Pattern: .*\n\u003e Apply to: Exchanges and Queues\n\u003e Definition: ha-mode = All\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flubrum%2Fmicroservicos-java-spring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flubrum%2Fmicroservicos-java-spring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flubrum%2Fmicroservicos-java-spring/lists"}