当前位置: 首页 >服务端 > SpringCloud无介绍快使用,gateway的基本使用(十六)

SpringCloud无介绍快使用,gateway的基本使用(十六)

SpringCloud无介绍快使用,gateway的基本使用(十六)

问题背景

从零开始学springcloud微服务项目
注意事项:

  • 约定 > 配置 > 编码
  • IDEA版本2021.1
  • 这个项目,我分了很多篇章,每篇文章一个操作步骤,目的是显得更简单明了
  • controller调service,service调dao
  • 项目源码以及sentinel安装包

gateway简介

1 zuul1.0是阻塞式,然后2.0迟迟不更新,springcloud除了一套gateway方案,可以做:

  • 反向代理
  • 鉴权
  • 流量控制
  • 熔断
  • 日志监控
    SpringCloud无介绍快使用,gateway的基本使用(十六) _ JavaClub全栈架构师技术笔记

2 路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由
3 参考的是Java8的java.util.function.Predicate,开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由
4 指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改
5 基本流程

  • web请求,通过一些匹配条件,定位到真正的服务节点。并在这个转发过程的前后,进行一些精细化控制。
    predicate就是我们的匹配条件;而filter,就可以理解为一个无所不能的拦截器。有了这两个元素,再加上目标uri,就可以实现一个具体的路由了
    SpringCloud无介绍快使用,gateway的基本使用(十六) _ JavaClub全栈架构师技术笔记

gateway模块搭建

1 新建module
SpringCloud无介绍快使用,gateway的基本使用(十六) _ JavaClub全栈架构师技术笔记
2 选择jdk1.8
SpringCloud无介绍快使用,gateway的基本使用(十六) _ JavaClub全栈架构师技术笔记
3 输入服务名:cloud-gateway-gateway9527
SpringCloud无介绍快使用,gateway的基本使用(十六) _ JavaClub全栈架构师技术笔记

4 引入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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud2022</artifactId><groupId>com.yg</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloud-gateway-gateway9527</artifactId><dependencies><!--gateway--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--eureka-client--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity --><dependency><groupId>com.yg</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!--一般基础配置类--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies></project>

5 添加application.yml文件

server:  port: 9527spring:  application:name: cloud-gateway  cloud:gateway:  routes:- id: payment_routh #payment_route#路由的ID,没有固定规则但要求唯一,建议配合服务名  uri: http://localhost:8001  #匹配后提供服务的路由地址  predicates:- Path=/payment/get/** # 断言,路径相匹配的进行路由eureka:  instance:hostname: cloud-gateway-service  client: #服务提供者provider注册进eureka服务列表内service-url:  register-with-eureka: true  fetch-registry: true  defaultZone: http://eureka7001.com:7001/eureka

6 添加启动类

package com.yg.springcloud;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * @Author suolong * @Date 2022/6/20 10:18 * @Version 2.0 */@SpringBootApplicationpublic class GateWayMain9527 {public static void main(String[] args) {SpringApplication.run(GateWayMain9527.class, args);}}

7 整体目录架构
SpringCloud无介绍快使用,gateway的基本使用(十六) _ JavaClub全栈架构师技术笔记

8 使用网关路由访问:http://localhost:9527/payment/get/1
SpringCloud无介绍快使用,gateway的基本使用(十六) _ JavaClub全栈架构师技术笔记

SpringCloud无介绍快使用,Seata处理分布式事务(二十五)
SpringCloud无介绍快使用,sentinel服务熔断功能(二十四)
SpringCloud无介绍快使用,sentinel注解@SentinelResource的基本使用(二十三)
SpringCloud无介绍快使用,sentinel热点key限流与系统规则的基本使用(二十二)
SpringCloud无介绍快使用,sentinel熔断降级和限流的基本使用(二十一)
SpringCloud无介绍快使用,Nacos集群和Nginx代理(二十)
SpringCloud无介绍快使用,nacos配置中心的基本使用(十九)
SpringCloud无介绍快使用,nacos注册中心的基本使用(十八)
SpringCloud无介绍快使用,gateway通过微服务名实现动态路由(十七)
SpringCloud无介绍快使用,gateway的基本使用(十六)
SpringCloud无介绍快使用,Ribbon负载均衡工具与OpenFeign的使用(十五)
SpringCloud无介绍快使用,使用Zookeeper替换Eureka服务注册与发现(十四)
SpringCloud无介绍快使用,服务发现Discovery和Eureka自我保护(十三)
SpringCloud无介绍快使用,集群cloud-provider-payment8002搭建(十二)
SpringCloud无介绍快使用,集群Eureka服务注册中心cloud-eureka-server7002搭建(十一)
SpringCloud无介绍快使用,单机Eureka服务注册中心cloud-eureka-server7001搭建(十)
SpringCloud无介绍快使用,新建cloud-api-commons公共模块module(九)
SpringCloud无介绍快使用,新建子module消费者订单模块(八)
SpringCloud无介绍快使用,热部署devtools配置(七)
SpringCloud无介绍快使用,子module提供者支付微服务业务开发(六)
SpringCloud无介绍快使用,新建子module提供者支付微服务yml整合和新建启动类(五)
SpringCloud无介绍快使用,新建子module提供者支付微服务pom整合(四)
SpringCloud无介绍快使用,springcloud父工程pom文件整理(三)
SpringCloud无介绍快使用,IDEA新建springcloud父工程(二)
SpringCloud无介绍快使用,与Spingboot之间的兼容版本选择(一)




作为程序员第 183 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …
SpringCloud无介绍快使用,gateway的基本使用(十六) _ JavaClub全栈架构师技术笔记SpringCloud无介绍快使用,gateway的基本使用(十六) _ JavaClub全栈架构师技术笔记SpringCloud无介绍快使用,gateway的基本使用(十六) _ JavaClub全栈架构师技术笔记

Lyric: 在你的面前转来转去

作者:时间是一种解药
来源链接:https://blog.csdn.net/cucgyfjklx/article/details/125434871

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/113069.html

标签:Gateway
分享给朋友:

“SpringCloud无介绍快使用,gateway的基本使用(十六)” 的相关文章