经过spring cloud gateway 网关访问nacos上的服务

前面的博文已经叙述了如何将服务注册到nacos,今天这里说一下如何通过网关访问nacos上注册的服务。网关使用的是spring cloud gateway 。

  • 首先注册到nacos一个spring boot web服务,作为服务提供者。

经过spring cloud gateway 网关访问nacos上的服务_第1张图片

  • 配置网关服务 

新建Spring boot项目,添加依赖

        
			org.springframework.cloud
			spring-cloud-starter-gateway
		
		
			org.springframework.cloud
			spring-cloud-starter-netflix-hystrix
		
		
		
		
			org.springframework.cloud
			spring-cloud-starter-alibaba-nacos-discovery
			0.9.0.RELEASE
		

注册到nacos配置


spring:
  cloud:
    nacos:
      discovery:
        register-enabled: true
        server-addr: 192.168.0.254:8848 # nancos地址
  application:
    name: gateWay
server:
  port: 8081

启动类配置

package com.gateway.gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;

@EnableDiscoveryClient  // 启用服务注册和发现
@RestController  // 提供一个简单的降级页面
@SpringBootApplication
public class GatewayApplication {

	public static void main(String[] args) {
		SpringApplication.run(GatewayApplication.class, args);
	}
	/**
	 * @Title: fallback
	 * @Description: 一个简单的降级页面
	 * @return
	 */
	@RequestMapping("/fallback")
	public Mono fallback() {
		// Mono是一个Reactive stream,对外输出一个“fallback”字符串。
		return Mono.just("fallback");
	}

	@Bean
	public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
		return builder.routes()
				// 配制一个路由,把 http://网关地址:网关端口/demo/ 下的请求路由到 demo-service 微服务中
				.route(p -> p
						.path("/concurrent-test/**") //url匹配
						.uri("lb://concurrent-test"))  // 将请求路由到指定目标, lb开头是注册中心中的服务, http/https 开头你懂的
				.build();
	}

}
  • 启动网关服务

发现两个服务都已经注册到nacos

经过spring cloud gateway 网关访问nacos上的服务_第2张图片

使用postman,请求网关,成功返回数据

经过spring cloud gateway 网关访问nacos上的服务_第3张图片

你可能感兴趣的:(nacos,gateway,Spring,boot,Spring,boot,Spring,Cloud)