SpringCloud-gateway 实现服务发现路由

springcloud-gateway使用webflux响应式编程并使用Netty非Servlet容器,使用Netty转发请求,属于非阻塞请求,具有很高的性能,他通过一系列的断言和Filter来实现路由控制,最终由

NettyRoutingFilter 进行请求发送

自定义服务发现路由配置 

目前有个难题是,我们的项目都是带有上下文的,并且上下文与服务id保持一致,所以请求的时候都是服务/serviceId/api/test,但是gateway自带的服务发现路由配置默认是去掉serviceId的,并且不具备扩展的能力


package org.springframework.cloud.gateway.discovery;

import java.util.ArrayList;
import java.util.List;

import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.cli

你可能感兴趣的:(Java从开发到设计,微服务,gateway)