SpringCloud-Gateway-服务网关的简单配置以及使用
所谓的API网关,就是指系统的统一入口,它封装了应用程序的内部结构,为客户端提供统一服务,一些与业务本身功能无关的公共逻辑可以在这里实现,诸如认证、鉴权、监控、路由转发等等
Spring Cloud Gateway是Spring公司基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API路由管理方式。它的目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控和限流
总的说我们的gateway服务网关的功能就是在nacos服务中,我们的ip地址端口号有很多,我们用了网关后就可以用一个ip地址和端口号来调用我们的服务 即:
localhost:80/shop-service/save/1(原来:localhost:8081/save/1)
localhost:80/product-service/member/1(原来:localhost:9090/member/1)
类似这样那我们如何进行使用呢?操作如下
第1步:创建一个 api-gateway 的模块,导入相关依赖
<!--gateway网关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<!--nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
第2步:创建主类启动类
package com.web;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class GatewayApp {
public static void main(String[] args) {
SpringApplication.run(GatewayApp.class);
}
}
第三步:添加配置文件
#port
server.port=7000
#server-name
spring.application.name=api-gateway
#nacos
spring.cloud.nacos.discovery.server-addr=localhost:8848
#gateway
spring.cloud.gateway.discovery.locator.enabled=true
第四步:启动然后就可以使用了