O QUE É SPRING CLOUD?

Ao desenvolver microserviços distribuídos com o Spring Boot, enfrentamos os seguintes problemas:

  • Complexidade associada a sistemas distribuídos – Essa sobrecarga inclui problemas de rede, sobrecarga de latência, problemas de largura de banda, problemas de segurança.
  • Service Discovery – As ferramentas de descoberta Service Discovery-  gerenciam como os processos e serviços em um cluster podem encontrar e conversar entre si. Ele envolve um diretório de serviços, registrando serviços nesse diretório e, em seguida, podendo procurar e conectar-se a serviços nesse diretório.
  • Redundância – Redundância em sistemas distribuídos.
  • Balanceamento de carga –   O balanceamento de carga melhora a distribuição de cargas de trabalho em vários recursos de computação, como computadores, um cluster de computador, links de rede, unidades de processamento central ou unidades de disco.
  • Problemas de desempenho – Problemas de desempenho devido a várias despesas operacionais.
  • Complexidade de implantação – Requisito de habilidades de Devops.

Entendendo o Spring Cloud

O Spring Cloud fornece ferramentas para desenvolvedores criarem rapidamente alguns dos padrões comuns em sistemas distribuídos (por exemplo, gerenciamento de configuração, descoberta de serviço, disjuntores, roteamento inteligente,
micro-proxy, barramento de controle, tokens únicos, bloqueios globais, eleição de liderança, distribuição sessões, estado de cluster). 
A coordenação de sistemas distribuídos leva a padrões de placa de caldeiraria e o uso de desenvolvedores do Spring Cloud pode rapidamente suportar serviços e aplicativos que implementam esses padrões. Eles funcionarão bem em qualquer ambiente distribuído, incluindo o próprio laptop do desenvolvedor, data centers bare-metal e plataformas gerenciadas, como o Cloud Foundry.

O Spring Cloud é baseado no Spring Boot, fornecendo várias bibliotecas que aprimoram o comportamento de um aplicativo quando adicionados ao caminho de classe. Você pode aproveitar o comportamento padrão básico para começar muito rapidamente e, quando precisar, pode configurar ou estender para criar uma solução personalizada.

Características

O Spring Cloud se concentra em fornecer uma boa experiência fora da caixa para casos de uso típicos e mecanismo de extensibilidade para cobrir outros.

  • Configuração distribuída / versionada
  • Registro de serviço e descoberta
  • Roteamento
  • Chamadas de serviço a serviço
  • Balanceamento de carga
  • Disjuntores
  • Fechaduras globais
  • Eleição de liderança e estado de cluster
  • Mensagens distribuídas

A maneira recomendada de começar a usar spring-cloudem seu projeto é com um sistema de gerenciamento de dependências – o snippet abaixo pode ser copiado e colado em sua compilação. Preciso de ajuda? Veja os nossos guias de introdução na construção com Maven e Gradle .

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
</parent>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
</dependencies>

 

O Spring Cloud tem uma abordagem muito declarativa e, muitas vezes, você obtém muitos fetaures com apenas uma alteração de caminho de classe e / ou uma anotação. Exemplo de aplicativo que é um cliente de descoberta:

@SpringBootApplication
@EnableDiscoveryClient
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

Venha APRENDER SPRING CLOUD com a GENTE!!!

Let’s go ahead!!!