Para configurar o roteamento de microsserviços com Zuul no Spring Cloud, crie um servidor Zuul dedicado que atue como gateway. Siga as etapas a seguir para implementar uma solução básica.
Criar o Módulo do Servidor Zuul
Estabeleça um novo módulo no projeto para isolar a configuração do Zuul, facilitando a manutenção e a implantação.
Adicionar Dependências
Inclua as dependências necessárias no arquivo pom.xml do módulo. Utilize versões compatíveis com o Spring Cloud adotado.
<dependencies>
<!-- Início das dependências do Zuul -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!-- Suporte a tolerância a falhas -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!-- Fim das dependências -->
</dependencies>
Verifique a compatibilidade de versões no gerenciador de dependências do projeto.
Implementar a Classe Pirncipal
Desenvolva a classe de aplicação principle para inicializar o servidor Zuul com as anotações corretas.
package com.rota.zuul;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@SpringBootApplication
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
@EnableZuulProxy
public class AplicacaoServidorRota {
public static void main(String[] args) {
System.out.println("Iniciando o servidor de roteamento Zuul...");
SpringApplication.run(AplicacaoServidorRota.class, args);
System.out.println("Servidor de roteamento Zuul em execução.");
}
}
A exclusão da configuração de banco de dados evita erros se não houver fonte de dados conectada.
Definir as Configurações de Propriedades
Crie o arquivo application.properties para estabelecer regras de roteamento e parâmetros do servidor.
# Identificação da aplicação
spring.application.name=servidor-roteamento
# Porta do servidor Zuul
server.port=8004
# Localização do servidor de registro Eureka
eureka.client.serviceUrl.defaultZone=http://localhost:8001/eureka/
# Regras de roteamento
# Caminho externo prefixado para o serviço consumidor
zuul.routes.servico-consumidor.path=/consumidor/**
# Nome do microsserviço alvo registrado no Eureka
zuul.routes.servico-consumidor.serviceId=consumidor
# Alternativa: mapeamento direto via URL
# zuul.routes.servico-consumidor.url=http://192.168.200.16:8002
As configurações permitem redirecionar solicitações com base em caminhos URL.
Validar o Funcionamento
Execute os serviços necessários e verifique o acesso. Sem o Zuul, o acesso direto ao microsserviço consumidor seria via localhost:8002/Algoritmo/irParaServidor. Com o roteamento configurado, utilize o servidor Zuul: localhost:8004/consumidor/Algoritmo/irParaServidor. O sucesso indica que as requisições estão sendo encaminhadas corretamente.
Este método centraliza o acesso, melhora a segurança ao ocultar endpoints internos e suporta balanceamento de carga entre múltiplas instâncias de serviços.