ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-06-26 08:50:49  阅读:1288  来源: 互联网

标签:网关 spring nacos springframework import org cloud


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

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

  • 配置网关服务 

新建Spring boot项目,添加依赖

        <dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-gateway</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
		</dependency>
		<!--nacos服务注册与发现-->
		<!-- nacos 的服务注册与发现 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
			<version>0.9.0.RELEASE</version>
		</dependency>

注册到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<String> 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

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

标签:网关,spring,nacos,springframework,import,org,cloud
来源: https://blog.csdn.net/GISuuser/article/details/93708791

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有