栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

tedu spring微服务day07学习 网关服务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

tedu spring微服务day07学习 网关服务

        网关本质上要提供一个各种服务访问的入口,并提供服务接收并转发所有内外部的客户端调用,还有就是权限认证,限流控制等等。Spring Cloud Gateway是Spring公司基于Spring 5.0,Spring Boot 2.0 和 等技术开发的一个网关组件,它旨在为微服务架构提供一种简单有效的统一的 API入口,负责服务请求路由、组合及协议转换,并且基于 Filter 链的方式提供了权限认证,监控、限流等功能

优点:
性能强劲:是第一代网关Zuul的1.6倍。
功能强大:内置了很多实用的功能,例如转发、监控、限流等
设计优雅,容易扩展。
缺点:
依赖Netty与WebFlux(Spring5.0),不是传统的Servlet编程模型(Spring MVC就是基于此模型实现),学习成本高。

目录

快速入门

创建一个新的maven子项目pom文件中添加依赖 

编写yml文件

编写网关的启动类

启动服务(网关启动类,provider提供方启动类)

 在idea中打开访问url模拟器

访问网关服务就可以访问提供方提供额业务啦

 如何实现网关的负载均衡

先在pom文件中添加nacos依赖

启动sca-gateway

启动sca-provider8081端口和8082端口

在浏览器模拟器中访问网关url就可以获取服务端提供的服务了,并且是负载均衡的,这样就可以把服务端的url地址给隐藏保护了

网关限流的入门

第一步添加依赖

编写yml配置


快速入门

创建一个新的maven子项目pom文件中添加依赖 



    
        01-sca
        com.jt
        1.0-SNAPSHOT
    
    4.0.0

    sca-geteway

    
        
            com.jt
            sca-common
            1.0-SNAPSHOT
        
        
            org.springframework.boot
            spring-boot-starter
        
        
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        
    

注意:

 

编写yml文件
server:
  port: 9000
spring:
  application:
    name: sca-gateway #可以省略的
  cloud:
    gateway:
      routes: #配置网关路由规则 #路由配置(routes下可以有多个路由,用id作为唯一标识)
        - id: route01  #路由id,自己指定一个唯一值即可
          uri: http://localhost:8081/ #网关帮我们转发的url,请求转发路径,一般请求访问的是网关,网关会帮忙转达的
          predicates: ###断言(谓此):匹配请求规则(定义转发条件,只有谓词所有条件都满足才会请求抓发)
            - Path=/nacos/provider/echo/**  #请求路径定义,此路径对应uri中的资源,(**)代表多级目录
          filters: ##网关过滤器,用于对谓词中的内容进行判断分析以及处理,这也是局部过滤器,针对于具体(当前)路由进行设计,谓词条件为true时则执行这里的filter
            - StripPrefix=1 #转发之前去掉path中第一层路径,例如nacos,去除前缀过滤器,这里的1就是去除path的第一层目录
#虽然网关没有在nacos进行注册,但是这个子项目sca-gateway在nacos进行注册了所以得启动nacos

编写网关的启动类

启动服务(网关启动类,provider提供方启动类)

 在idea中打开访问url模拟器

访问网关服务就可以访问提供方提供额业务啦

 

 如何实现网关的负载均衡

先在pom文件中添加nacos依赖

在yml文件中添加配置

server:
  port: 9000
spring:
  application:
    name: sca-gateway #可以省略的
  cloud:
    nacos:
      discovery: #注册和发现
        server-addr: localhost:8848
    gateway: #网关配置
      routes: #配置网关路由规则 #路由配置(routes下可以有多个路由,用id作为唯一标识)
        - id: route01  #路由id,自己指定一个唯一值即可
          #lb表示负载均衡
          uri: lb://sca-provider #网关帮我们转发的url,请求转发路径,一般请求访问的是网关,网关会帮忙转达的
          #url是uri的一个子集
          predicates: ###断言(谓此):匹配请求规则(定义转发条件,只有谓词所有条件都满足才会请求抓发)
            - Path=/nacos/provider/echo/**  #请求路径定义,此路径对应uri中的资源,(**)代表多级目录
          filters: ##网关过滤器,用于对谓词中的内容进行判断分析以及处理,这也是局部过滤器,针对于具体(当前)路由进行设计,谓词条件为true时则执行这里的filter
            - StripPrefix=1 #转发之前去掉path中第一层路径,例如nacos,去除前缀过滤器,这里的1就是去除path的第一层目录
#虽然网关没有在nacos进行注册,但是这个子项目sca-gateway在nacos进行注册了所以得启动nacos

启动sca-gateway

启动sca-provider8081端口和8082端口

在浏览器模拟器中访问网关url就可以获取服务端提供的服务了,并且是负载均衡的,这样就可以把服务端的url地址给隐藏保护了

网关限流的入门

第一步添加依赖
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-sentinel
        
        
            com.alibaba.cloud
            spring-cloud-alibaba-sentinel-gateway
        

编写yml配置

server:
  port: 9000
spring:
  application:
    name: sca-gateway #可以省略的
  cloud:
    #虽然网关没有在nacos进行注册,但是这个子项目sca-gateway在nacos进行注册了所以得启动nacos
    nacos:
      discovery: #注册和发现
        server-addr: localhost:8848
    sentinel:
      transport:
        dashboard: localhost:8180
      eager: true # 服务启动的时候sentinel控制台看到的服务信息
    gateway: #网关配置
      routes: #配置网关路由规则 #路由配置(routes下可以有多个路由,用id作为唯一标识)
        - id: route01  #路由id,自己指定一个唯一值即可
          #lb表示负载均衡
          uri: lb://sca-provider #网关帮我们转发的url,请求转发路径,一般请求访问的是网关,网关会帮忙转达的
          #url是uri的一个子集
          predicates: ###断言(谓此):匹配请求规则(定义转发条件,只有谓词所有条件都满足才会请求抓发)
            - Path=/nacos/provider/echo/**  #请求路径定义,此路径对应uri中的资源,(**)代表多级目录
            # - Header=X-Request-Id, d+
            # - Method=Get
            # - Query=token. d+
          filters: ##网关过滤器,用于对谓词中的内容进行判断分析以及处理,这也是局部过滤器,针对于具体(当前)路由进行设计,谓词条件为true时则执行这里的filter
            - StripPrefix=1 #转发之前去掉path中第一层路径,例如nacos,去除前缀过滤器,这里的1就是去除path的第一层目录
基于请求属性限流

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/681914.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号