Microsserviços com Spring Cloud: Introdução
Tags: java, microsservices, spring, braziliandevs
Published: 2021-04-10 14:48:09

---
title: Microsserviços com Spring Cloud: Introdução
published: true
description:
tags:  java, microsservices, spring, braziliandevs
//cover_image: https://direct_url_to_image.jpg
---

## O que são microsserviços?
São uma abordagem de arquitetura na qual o software consiste de pequenos serviços independentes que se comunicam entre si e são organizados de acordo com seus domínios de negócio.

Em arquiteturas monolíticas, os processos são extremamente acoplados e são executados como um único serviço , sendo assim se uma parte do sistema tiver a necessidade de escalar será necessário escalar o sistema todo.

Microsserviços são autônomos, cada serviço pode ser desenvolvido, implantado e escalado sem interferir em outros serviços.

Microsserviços são especialistas, cada serviço é desenhado para resolver um problema específico, se for necessário adicionar código de outras responsabilidades é recomendável separar em outro serviço.

Microsserviços são resilientes, a independência do serviço aumenta a resiliência a falhas na arquitetura, se um deles tiver problema , só afetará a parte do fluxo pela qual ele é responsável.

Microsserviços facilitam a reutilização de código, a divisão em módulos com responsabilidades bem definidas possibilita que funções específicas de um serviço possam ser utilizadas para complementar features sem outros sem a necessidade de escrever um código novo.

Microsserviços permitem ter liberdade na escolha da stack, pois n microsserviços de n linguagens diferentes podem se comunicar via endpoints sem problemas.

## Spring Cloud

Fornece uma série de ferramentas que facilitam a criação de aplicações distribuídas e escaláveis.

Dentre as funcionalidades podemos citar:

### Service Discovery

 Que permite que outros serviços "descubram" facilmente a rota dos serviços que precisam acessar

Mais conhecidos do Spring Cloud:

- [Spring Cloud Netflix Eureka](https://spring.io/projects/spring-cloud-netflix)

- [Spring Cloud Consul](https://spring.io/projects/spring-cloud-consul)

### Gateway

Tem o papel de ser um intermediário nas requisições para outros serviços.

Mais conhecidos do Spring Cloud:

- [Spring Cloud Gateway](https://spring.io/projects/spring-cloud-gateway)

- [Zuul](https://spring.io/guides/gs/routing-and-filtering/)

### Config server

Permite armazenar configurações de aplicações de modo centralizado fora da aplicação (por ex, em um repositório que centralize todas as configurações de todos os microsserviços.

[Config Server](https://spring.io/projects/spring-cloud-config)

### Load Balancer

É responsável por distribuir de forma eficiente o tráfego de requisições dentre as instâncias de um mesmo serviço.

Mais conhecidos no Spring

[Ribbon](https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html)
[Spring Cloud Load Balancer](https://spring.io/guides/gs/spring-cloud-loadbalancer/)

### Feign

Facilita a criação e utilização de Clients HTTP.

[Feign](https://github.com/OpenFeign/feign_)

### Circuit Breaker

Facilita o acompanhamento e controle de falhas e altas taxas de latências entre os serviços.

Mais conhecidos no Spring: 

[Hystrix] (https://spring.io/guides/gs/circuit-breaker/)

[Resilience4J](https://github.com/resilience4j/resilience4j)

Referências e dicas de onde estudar mais sobre: 


[O que são microsserviços?](https://aws.amazon.com/pt/microservices/)

[Spring Cloud](https://spring.io/projects/spring-cloud)

[The Beginner’s Guide To Spring Cloud - Ryan Baxter
](https://www.youtube.com/watch?v=aO3W-lYnw-o)

[Introduction to Spring Cloud in 10 Minutes
](https://www.youtube.com/watch?v=hgp6dlJJaCI)

[Microservices com Spring Cloud]
(https://www.youtube.com/watch?v=RocBZk2V8xM)

[Spring Cloud | Introduction | Simple Programming
](https://www.youtube.com/watch?v=v8CsnghDA2g&list=PLO0KWyajXMh4u-DhB7bXoRQ21rfkF_cSU&index=1)

[01 Agenda - Spring Boot Microservices Level](https://www.youtube.com/watch?v=y8IQb4ofjDo&list=PLqq-6Pq4lTTZSKAFG6aCDVDP86Qx4lNas)

[1 Agenda and prerequisites - Spring Boot Microservices Level 2](https://www.youtube.com/watch?v=o8RO38KbWvA&list=PLqq-6Pq4lTTbXZY_elyGv7IkKrfkSrX5e
https://www.youtube.com/watch?v=upoIwn4rWCo&list=PLqq-6Pq4lTTaoaVoQVfRJPqvNTCjcTvJB&index=1)

[Microservices Architecture - What is Service Discovery with Eureka?](
https://www.youtube.com/watch?v=T36Usw_QbP0)

[What is service discovery really all about? - Microservices Basics Tutorial](https://www.youtube.com/watch?v=GboiMJm6WlA)

[Spring Cloud Service Discovery: Netflix Eureka Server
](https://www.youtube.com/watch?v=41SmBj16u8k&list=PLmySAPXhfGyCovxvqpndBQaNm5SRDsBuC)

[Spring Cloud Netflix Eureka Baeldung](https://www.baeldung.com/spring-cloud-netflix-eureka)

[Service Discovery com o Eureka](https://medium.com/swlh/spring-cloud-service-discovery-with-eureka-16f32068e5c7)

[How to configure SpringCloud Zuul – Routing and Filtering using SpringBoot | Java Techie
](https://www.youtube.com/watch?v=6aG0xFpeNFw)

[Spring Boot Microservices 03 - Service discovery Eureka e Gateway Zuul](https://www.youtube.com/watch?v=ZoTsZPZiPVw)

[Spring Cloud Gateway Baeldung](https://www.baeldung.com/spring-cloud-gateway)

[Spring Cloud Gateway DevGlan](https://www.devglan.com/spring-cloud/spring-cloud-gateway-example)

[Spring Cloud | Cloud Config Server | Simple Programming
](https://www.youtube.com/watch?v=KP3xJTb5lME&list=PLO0KWyajXMh4u-DhB7bXoRQ21rfkF_cSU&index=6)

[What is Spring Cloud? | Tech Primers
](https://www.youtube.com/playlist?list=PLTyWtrsGknYeOJHtd3Ll93GRf28hrjlHV)

[Spring Cloud Feign - Declarative REST Client](
https://www.youtube.com/watch?v=_MMf2SvNqxo)

[11 Understanding the circuit breaker pattern - Spring Boot Microservices Level 2](
https://www.youtube.com/watch?v=mJ8JSach2P4)

[Spring Tips: Spring Cloud Circuit Breaker](https://www.youtube.com/watch?v=s5-leUCti5o)

Alguma dúvida ou sugestão? Deixa aqui nos comentários :)