• springcloud学习笔记:使用gateway实现路由转发


            本文主要介绍如何在springcloud中通过gateway实现路由转发和微服务之间的负载均衡。本例使用的springcloud版本为:2021.0.3,springboot版本为:2.6.8。

    1、创建gateway网关项目

            打开idea新建项目,选择maven,创建springboot项目gateway-6001。

    2、pom文件配置

             在项目pom中引入spring-cloud-starter-netflix-eureka-client和spring-cloud-starter-gateway依赖: 

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.springframework.cloudgroupId>
    4. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    5. dependency>
    6. <dependency>
    7. <groupId>org.springframework.cloudgroupId>
    8. <artifactId>spring-cloud-starter-gatewayartifactId>
    9. dependency>
    10. dependencies>

    3、application.yml文件配置

            在项目resources文件夹下创建application.yml文件,并按如下内容进行配置:

    1. server:
    2. port: 6001
    3. eureka:
    4. client:
    5. service-url:
    6. defaultZone: http://localhost:7001/eureka
    7. fetch-registry: true
    8. instance:
    9. instance-id: gateway-${server.port}
    10. prefer-ip-address: true
    11. spring:
    12. application:
    13. name: gateway
    14. cloud:
    15. gateway:
    16. routes: # 网关路由配置
    17. - id: payment # 路由id,自定义,只要唯一即可
    18. uri: lb://PAYMENT-SERVER # 路由的目标地址 lb就是负载均衡,后面跟服务名称
    19. predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
    20. - Path=/payment/** # 这个是按照路径匹配,只要以/payment/开头就符合要求

            其中spring.cloud.gateway下未网关路由的配置,id为路由id需要唯一不重复;uri为路由目标地址,lb + 服务名称可以使用负责均衡访问服务;predicates为路由断言;当前配置表示只要以/paymnet/开发的访问就会转发到PAYMENT-SERVER服务。

    4、主应用类配置        

            在项目src/main/java下创建主应用类 GatewayApplication.java,添加注解@EnableEurekaClient、@SpringBootApplication。

    1. @EnableEurekaClient
    2. @SpringBootApplication
    3. public class GatewayApplication {
    4. public static void main(String[] args) {
    5. SpringApplication.run(GatewayApplication.class, args);
    6. }
    7. }

    5、测试验证

            同时启动并运行项目eueka-server-7001、payment-8001、payment-8002、gateway-6001。然后在postman中进行接口调用测试。通过访问http://127.0.0.1:6001/payment/get/1可以直接返回结果。


     新时代农民工 

  • 相关阅读:
    leetcode:1106. 解析布尔表达式【栈的应用】
    chatGPT底层原理是什么,为什么chatGPT效果这么好?三万字长文深度剖析-下
    gen_arrow_contour_xld
    3. 一级缓存解析
    selenium打开火狐浏览器
    WRF模式行业应用问题解析
    LVGL_基础控件进度条bar
    java-net-php-python-jsp网上拍卖系统计算机毕业设计程序
    单例模式:饿汉式、懒汉式
    数据挖掘知识随笔
  • 原文地址:https://blog.csdn.net/sg_knight/article/details/126194768