Estoy intentando pasar de Eureka a Consul para el descubrimiento de servicios y tengo un problema: mi servicio de puerta de enlace se registra y mi servicio de atención al cliente se registra, pero el servicio de puerta de enlace no enrutará las solicitudes al servicio de atención al cliente automáticamente. Las rutas que he definido específicamente en el controlador de la puerta de enlace que usan clientes de Feign para enrutar funcionan bien, pero antes (con Eureka) podía hacer una solicitud a cualquier ruta como "/servicio-al-cliente/blah" (donde servicio-al-cliente es el nombre registrado ) y la puerta de enlace simplemente reenviaría la solicitud al microservicio descendente.
Aquí está mi puerta de enlace bootstrap.yml (está en bootstrap y no en la aplicación porque también estoy usando el cónsul para la configuración)
spring: application: name: gateway-api cloud: consul: config: watch: wait-time: 30 discovery: prefer-ip-address: true instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}Prueba esto, creo que esto te ayudará a resolver tu problema.
Este es mi archivo bootstrap.yml de puerta de enlace
spring: application: name: gateway-service --- spring: profiles: default cloud: consul: config: prefix: config/dev/ format: FILES host: localhost port: 8500 discovery: prefer-ip-address: true spring.profiles.active: devUso esta dependencia para la puerta de enlace y para todas las aplicaciones.
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-config</artifactId> </dependency>Uso del cónsul como mi servidor de configuración. luego agrego cónsul a estas configuraciones. la ruta de configuración es /config/dev/gateway.yml
zuul: prefix: /api ignoredServices: '*' host: connect-timeout-millis: 20000 socket-timeout-millis: 20000 routes: customer-service: path: /customer/** serviceId: customer-service stripPrefix: false sensitiveHeaders: Cookie,Set-CookieLa aplicación de arranque de resorte del servicio de puerta de enlace anota como se muestra a continuación
@SpringBootApplication @EnableDiscoveryClient @EnableZuulProxy public class GatewayServiceApplication { public static void main(String[] args) { SpringApplication.run(GatewayServiceApplication.class, args); } // End main () }// End GatewayServiceApplicationsi haces tu aplicación así, puedes usar las rutas de la manera que prefieras.