当前位置: 首页 > news >正文

gateway网关实现路由基于nacos注册中心

      首先你需要启动nacos服务,才能开始下面的效果

image

 

image

 

image

 这里10010为网关端口

nacos你需要

image

当服务都启动后,你应该看到如下服务

image

 好了,下面开始上代码了

首先是网关部分

<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.13</version><relativePath/></parent><properties><java.version>1.8</java.version><spring-cloud.version>2021.0.4</spring-cloud.version><spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version></properties><groupId>com.huting</groupId><artifactId>gateway-service</artifactId><version>1.0-SNAPSHOT</version><dependencyManagement><dependencies><!-- Spring Cloud --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- Alibaba Cloud --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><!-- Gateway 网关 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency><!-- Nacos 服务发现 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency></dependencies></project>

  

package com.gate;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;/*** @Description:* @Author: qiuxie* @Create: 2025/11/12 21:05*/
@EnableDiscoveryClient
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

  application.properties

server.port=10010#spring.config.import=optional:nacos:${spring.application.name}.propertiesspring.application.name=gateway-service
spring.cloud.nacos.discovery.server-addr=192.168.31.60:8850
spring.cloud.nacos.discovery.service=${spring.application.name}
spring.cloud.nacos.discovery.namespace=gateway-test
management.endpoints.web.exposure.include=*spring.cloud.gateway.routes[0].id=user-service
spring.cloud.gateway.routes[0].uri=lb://user-service
spring.cloud.gateway.routes[0].predicates[0].name=Path
spring.cloud.gateway.routes[0].predicates[0].args[pattern]=/user/**spring.cloud.gateway.routes[1].id=login-route
spring.cloud.gateway.routes[1].uri=lb://user-service
spring.cloud.gateway.routes[1].predicates[0].name=Path
spring.cloud.gateway.routes[1].predicates[0].args[pattern]=/login/**spring.cloud.gateway.routes[2].id=order-service
spring.cloud.gateway.routes[2].uri=lb://order-service
spring.cloud.gateway.routes[2].predicates[0].name=Path
spring.cloud.gateway.routes[2].predicates[0].args[pattern]=/order/**logging.level.org.springframework.cloud.gateway=DEBUG#nacos配置
#2024.3.1 13:56 add
spring.cloud.nacos.config.server-addr=192.168.31.60:8850
spring.cloud.nacos.config.namespace=gateway-test
spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.file-extension=propertieslogging.level.org.springframework.cloud.gateway.discovery=DEBUG# 设置Nacos客户端日志级别为DEBUG
logging.level.com.alibaba.nacos=DEBUGlogging.level.com.java=debug
logging.level.com.alibaba.nacos.shaded.io.perfmark=info
logging.level.web=debug

 接下来是user-service服务

<?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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- 继承 Spring Boot 父 POM,管理 Spring Boot 依赖版本 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version><relativePath/> <!-- 从仓库查找父 POM --></parent><groupId>org.example</groupId><artifactId>gateway-nacos-demo</artifactId><version>1.0.0</version><name>Gateway Nacos Demo</name><description>Spring Boot + Gateway + Nacos 服务发现示例</description><properties><java.version>1.8</java.version><skipTests>true</skipTests><springcloud.version>2021.0.5</springcloud.version><alibaba.version>2021.0.5.0</alibaba.version></properties><!-- 依赖管理 --><dependencyManagement><dependencies><!--spring cloud依赖管理,引入了Spring Cloud的版本--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${springcloud.version}</version><type>pom</type><scope>import</scope></dependency><!--SCA --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${alibaba.version}</version><type>pom</type><scope>import</scope></dependency><!--SCA --></dependencies></dependencyManagement><dependencies><!-- Spring Boot 核心依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--tomcat容器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Nacos 服务发现 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency></dependencies><build><plugins><!-- Spring Boot Maven 插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.7.15</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

  

package com.eg;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;/*** @Description:* @Author: qiuxie* @Create: 2025/11/12 21:28*/
@EnableDiscoveryClient
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

  

package com.eg;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @Description:* @Author: qiuxie* @Create: 2025/11/15 0:03*/
@RequestMapping("/login")
@RestController
public class LoginController {@GetMapping("/{id}")public String queryById(@PathVariable("id") Long id) {return "恭喜您成功进入登录系统~";}
}

  

package com.eg;import org.springframework.web.bind.annotation.*;/*** @Description:* @Author: qiuxie* @Create: 2025/11/12 21:45*/
@RestController
@RequestMapping("/user")
public class UserController {@GetMapping("/{id}")public String queryById(@PathVariable("id") Long id) {return "恭喜您成功进入用户系统~";}}

  

server.port=10011spring.config.import=optional:nacos:${spring.application.name}.propertiesspring.application.name=user-service
spring.cloud.nacos.discovery.server-addr=192.168.31.60:8850
spring.cloud.nacos.discovery.service=${spring.application.name}
spring.cloud.nacos.discovery.namespace=gateway-test
management.endpoints.web.exposure.include=*#nacos配置
#2024.3.1 13:56 add
spring.cloud.nacos.config.server-addr=192.168.31.60:8850
spring.cloud.nacos.config.namespace=gateway-test
spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.file-extension=properties# 设置Nacos客户端日志级别为DEBUG
logging.level.com.alibaba.nacos=DEBUGlogging.level.com.java=debug
logging.level.com.alibaba.nacos.shaded.io.perfmark=info
logging.level.web=debug

  接下来是order-service服务

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.order</groupId><artifactId>order-service</artifactId><version>1.0-SNAPSHOT</version><properties><java.version>1.8</java.version><skipTests>true</skipTests><springcloud.version>2021.0.5</springcloud.version><alibaba.version>2021.0.5.0</alibaba.version></properties><!-- 继承 Spring Boot 父 POM,管理 Spring Boot 依赖版本 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version><relativePath/> <!-- 从仓库查找父 POM --></parent><!-- 依赖管理 --><dependencyManagement><dependencies><!--spring cloud依赖管理,引入了Spring Cloud的版本--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${springcloud.version}</version><type>pom</type><scope>import</scope></dependency><!--SCA --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${alibaba.version}</version><type>pom</type><scope>import</scope></dependency><!--SCA --></dependencies></dependencyManagement><dependencies><!-- Spring Boot 核心依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--tomcat容器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Nacos 服务发现 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency></dependencies><build><plugins><!-- Spring Boot Maven 插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.7.15</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

  

package com.order;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @Description:* @Author: qiuxie* @Create: 2025/11/14 15:32*/
@RestController
@EnableDiscoveryClient
@SpringBootApplication
@RequestMapping("/order")
public class OrderApplication {public static void main(String[] args) {SpringApplication.run(OrderApplication.class,args);}@GetMapping("/{id}")public String queryById(@PathVariable("id") Long id) {return "恭喜您成功进入订单系统~";}@GetMapping("/")public String get(){return null;}
}

  

server.port=10012spring.config.import=optional:nacos:${spring.application.name}.propertiesspring.application.name=order-service
spring.cloud.nacos.discovery.server-addr=192.168.31.60:8850
spring.cloud.nacos.discovery.service=${spring.application.name}
spring.cloud.nacos.discovery.namespace=gateway-test
management.endpoints.web.exposure.include=*#nacos配置
#2024.3.1 13:56 add
spring.cloud.nacos.config.server-addr=192.168.31.60:8850
spring.cloud.nacos.config.namespace=gateway-test
spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.file-extension=properties# 设置Nacos客户端日志级别为DEBUG
logging.level.com.alibaba.nacos=DEBUGlogging.level.com.java=debug
logging.level.com.alibaba.nacos.shaded.io.perfmark=info
logging.level.web=debug

  代码完毕,需要注意的gateway并没有rabbin了,所以需要引入loadbalancer

http://www.jsqmd.com/news/40643/

相关文章:

  • Upgrade Your Diagnostics with OTOFIX VCI V1 Bluetooth Connector for Seamless Scanning
  • Unlock BOSCH MPC5xx ECU Data with CG FC200 Programmer – Bench Read/Write Tool
  • 2025 Autel IM608 PRO II Full Kit – Advanced Diagnostics with Free G-Box3
  • Python 在 Windows 上提示文本消息的实现(模拟安卓手机上的 Toast 效果)
  • 小红书-强共鸣、高热度的话题----每一个都精准命中测试员的日常,非常适合在小红书打造“测试职场达人”人设。
  • 每日一导4
  • 基于FPGA的BPSK+costas环实现,包含testbench,高斯信道,误码统计,可设置SNR
  • 【硬件测试】基于FPGA的BPSK+costas环系统开发与硬件片内测试,包含高斯信道,误码统计,可设置SNR
  • ### 4
  • 每日一句
  • 4.3 基于极限拉伸强度估算零件S-N曲线
  • 2025年宁夏AI客服服务商/供应商最新top5专业推荐:智能交互重构企业服务新范式
  • Windows 文件删除命令详解
  • Polander is good.
  • 2025年宁夏智能体定制服务商专业评测:智能体重构企业服务新生态
  • 在ec2上部署deepseekOCR模型
  • 软件工程学习日志2025.11.14
  • why should woman have a shorter name
  • 使用DeepSeek润色论文:掌握这些高效指令,精准润色
  • 轨迹方程1
  • Marie Curie the shortest
  • Linux增加root权限用户
  • 2025亲测靠谱的5家留学机构推荐,新通教育必看!
  • 2025.11.14
  • Whistle操作文档
  • 线世界“3P”:数码影音界的璀璨明珠
  • C# 流程控制(学习笔记3)
  • 在周五晚上
  • 电商创业必看!4步打通运营关键环节 - 智慧园区
  • 藤校录取率超93%!2025年美国留学中介TOP5推荐,附专属申请方案