SpringCloud Gateway路由配置

服务提供者

bootstrap.properties

server.port=9003
spring.application.name=service-provider

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

启动类及Controller

package com.sam.cloud.alibaba.nacos.discovery.provider;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {

	public static void main(String[] args) {
		SpringApplication.run(NacosProviderApplication.class, args);
	}

	@RestController
	class EchoController {
		@RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
		public String echo(@PathVariable String string) {
			return "Hello Nacos Discovery: " + string;
		}

		@GetMapping("/test")
		public String test() {
			return "this is test";
		}
	}
}

网关配置

application.yml

 spring:
   application:
     name: nacos-gateway
   cloud:
     nacos:
       discovery:
         server-addr: ${NACOS_HOST:localhost:8848}
     gateway:
       routes:
           # 路由的ID,没有固定规则,但要求唯一,建议配合服务名
         - id: payment_routh
           # 匹配后提供服务的路由地址
           uri: lb://service-provider
           #uri: http://www.baidu.com
           # 断言,路径相匹配的进行路由
           predicates:
             - Path=/provider/**
             #- Path=/**
           filters:
             - StripPrefix=1 #转发后去除第一段路径'provider'

注意

- Path 指定匹配的路径

- StripPrefix 指定转发后的处理规则,即先路由到 uri指定的服务,然后处理路径;不是先处理路径再路由。

测试

SpringCloud Gateway路由配置_第1张图片

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