赞
踩
1.权限控制:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。
2.路由和负载均衡:一切请求都必须先经过 gateway,但网关不处理业务,而是根据某种规则,把请求转发到某个微服务,这个过程叫做路由。当然路由的目标服务有多个时,还需要做负载均衡。
3.限流:当请求流量过高时,在网关中按照下流的微服务能够接受的速度来放行请求,避免服务压力过大。
pom.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>com.example</groupId>
- <artifactId>NacosCenter</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </parent>
- <groupId>com.example</groupId>
- <artifactId>gateway</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>gatewayservice</name>
- <description>gatewayservice</description>
- <properties>
- <java.version>8</java.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
- <exclusions>
- <!-- 将ribbon排除 -->
- <exclusion>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <!--配置中心-->
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-bootstrap</artifactId>
- <version>3.1.3</version>
- </dependency>
- <!--负载均衡-->
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-loadbalancer</artifactId>
- </dependency>
- <!--Spring Cloud Gateway-->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-webflux</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-gateway</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-zipkin</artifactId>
- <version>2.2.8.RELEASE</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
-
- </project>
- spring:
- application:
- name: gateway-service
- cloud:
- nacos:
- server-addr: localhost:8848
- config:
- server-addr: localhost:8848
- file-extension: properties
- #group: devGroup
- profiles:
- active: dev
-
- zipkin:
- base-url: http://localhost:9411/
- sender:
- type: web
- locator:
- discovery:
- enabled: true
- sleuth:
- sampler:
- probability: 1.0
读取Nacos的gateway-service-dev.properties文件
根据路径进行断言,将/order/**的服务全部路由只order-service服务上.默认使用轮询
启动gateway
gateway以10000端口启动
postman调用10000端口
成功创建订单并扣减库存
gateway成功对order/**请求进行路由.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。