服务器 > 服务器 > 微服务

入门级微服务项目搭建:六、集成Gateway

72人参与 2024-08-06 微服务

入门级微服务项目搭建:六、集成gateway

​ gateway俗称网关,我平常喜欢叫它门卫大爷。平常的单体项目访问接口,都是直接通过暴露出来的路径进行访问。而在微服务中则有所不同,我们不直接访问服务,而是通过gateway来访问服务,我们的请求先到gateway中,然后再转到具体服务中去。听起来有点像nginx,所以介于这样的工作形式,我才会将gateway亲切的称为门卫大爷。

​ gateway原理我就不在这里过多的赘述了,直接开始集成gateway的实战吧。

1.新建网关服务

新建项目mall-cloud-gateway,新建过程和之前的一样,最终的结构如下图所示:

在这里插入图片描述

2.修改网关服务的pom文件

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>

3.修改顶级父工程的pom文件

<modules>
    <module>mall-cloud-system</module>
    <module>mall-cloud-common</module>
    <module>mall-cloud-gateway</module>
</modules>

4.修改yml文件

5.nacos新增gateway服务的配置文件

​ 将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

最终获得如下所示的配置文件:

在这里插入图片描述

6.启动类加上@enablediscoveryclient注解

在这里插入图片描述

7.测试gateway是否生效

在这里插入图片描述

在这里插入图片描述

通过上述结果可知,gateway已经被集成到项目中,并且能够正常生效了。

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

【漏洞防范与应对:从发现到修复的全攻略】Prometheus Pushgateway推送网关 存在未授权访问漏洞 ,处理过程详解!!!

08-06

「微服务」微服务架构中的数据一致性

08-06

云原生和服务网格:最佳实践与案例分析

08-06

耗时3个月,线下访谈30+ csdn大佬,规划出了我的云原生学习路线

08-06

Nacos、Eureka、Zookeeper、Consul对比

08-06

微服务:一篇博客带你学会Feign(远程调用、自定义配置、性能优化、常用方式)

08-06

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论