72人参与 • 2024-08-06 • 微服务
gateway俗称网关,我平常喜欢叫它门卫大爷。平常的单体项目访问接口,都是直接通过暴露出来的路径进行访问。而在微服务中则有所不同,我们不直接访问服务,而是通过gateway来访问服务,我们的请求先到gateway中,然后再转到具体服务中去。听起来有点像nginx,所以介于这样的工作形式,我才会将gateway亲切的称为门卫大爷。
gateway原理我就不在这里过多的赘述了,直接开始集成gateway的实战吧。
新建项目mall-cloud-gateway,新建过程和之前的一样,最终的结构如下图所示:
pom文件的内容如下图所示:
<?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.wcc</groupid>
<artifactid>mall-cloud</artifactid>
<version>0.0.1-snapshot</version>
</parent>
<groupid>com.wcc</groupid>
<artifactid>mall-cloud-gateway</artifactid>
<version>0.0.1-snapshot</version>
<name>mall-cloud-gateway</name>
<description>mall-cloud-gateway</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter</artifactid>
</dependency>
<!--nacos注册中心-->
<dependency>
<groupid>com.alibaba.cloud</groupid>
<artifactid>spring-cloud-starter-alibaba-nacos-discovery</artifactid>
</dependency>
<!--nacos配置中心-->
<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-gateway</artifactid>
</dependency>
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-test</artifactid>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-maven-plugin</artifactid>
</plugin>
</plugins>
</build>
</project>
<modules>
<module>mall-cloud-system</module>
<module>mall-cloud-common</module>
<module>mall-cloud-gateway</module>
</modules>
修改application.yml文件
server:
port: 9000
spring:
application:
name: mall-cloud-gateway
新增bootstrap.yml文件
spring:
application:
name: mall-cloud-gateway
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: 65c5f8cb-1afd-420a-b725-f24cedc22475
config:
server-addr: localhost:8848
namespace: 65c5f8cb-1afd-420a-b725-f24cedc22475
file-extension: yml
将gateway的路由配置放在nacos中比较方便,在修改了nacos上的路由配置后,程序会实时更新nacos中的路由配置,而不需要重启项目,十分便捷。而gateway的路由配置规则有蛮多的就不一一介绍了,你可以找一篇专门讲解gateway的文章进行学习,本文只简单集成gateway。
配置内容如下所示:
spring:
cloud:
gateway:
# 打印请求日志(自定义)
requestlog: true
discovery:
locator:
enabled: true
routes:
# 认证中心
- id: system-user
uri: lb://system-user
predicates:
- path=/user/**
filters:
# 去除第一级路径
- stripprefix=1
最终获得如下所示的配置文件:
通过上述结果可知,gateway已经被集成到项目中,并且能够正常生效了。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论