Gateway的使用案例

所有微服务的调用需要先经过网管微服务,然后间接链接到真正提供服务的微服务,这样就不用暴露真正的服务器地址

pom依赖

注意 不要引入web模块和actuator


<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-starter-gatewayartifactId>
dependency>

方式一:配置

yml配置文件

server:
  port: 9527
spring:
  application:
    name: cloud-gateway
  cloud:
    gateway:
      routes:
        - id: payment_routh  #路由id,没有固定规则,但要求唯一,建议配合服务名
          uri: http://localhost:8001   #匹配后提供服务的路由地址
          predicates: 
            - Path=/payment/get/**    #断言,路径相匹配的则进行路由
              
        - id: payment_routh2  #路由id,没有固定规则,但要求唯一,建议配合服务名
          uri: http://localhost:8001   #匹配后提供服务的路由地址
          predicates: 
            - Path=/payment/lb/**    #断言,路径相匹配的则进行路由

方式二:编码

配置访问路由端口/guonei链接到http://news.baidu.com/guonei的示例代码

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class GatewayConfigration {

    @Bean
    public RouteLocator myRouteLocator(RouteLocatorBuilder builder){
        RouteLocatorBuilder.Builder routes=builder.routes();
        routes.route("my_path_routh",r->r.path("/guonei").uri("http://news.baidu.com/guonei"));
        return routes.build();
    }
}

你可能感兴趣的:(#,gateway)