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

对于网关的理解-Gateway

因为在使用微服务的时候,会有多端请求。会产生以下问题:

1.客户端需要记住每一个微服务的url

2.主机端口也会直接暴露

3.每一个微服务都需要认证

4.存在跨域问题

所以网关可以解决统一访问、隐藏真实的服务器地址、网关进行统一认证、解决跨域问题、限流等问题。

所以网关只需要处理网址,基本上只需要处理配置文件和启动类

spring:cloud:gateway:globalcors:cors-configurations:'[/**]': #匹配向网关发送的所有请求allowedOrigins: "*" #任何一个服务器都允许跨域操作allowedMethods:- POST- GET- DELETE- PUTroutes:  #  路由- id: chessgame   #自定义路由唯一标识uri: lb://USER  #  网关管理的访问地址predicates:  #  过滤的路径(只有路径匹配了url请求,网关才会处理请求)- Path=/user/**filters:  # 可以对于url的请求进行拦截处理- PrefixPath=/api #所有请求到网关的路径前添加这段内容- StripPrefix=1 #忽略请求路径中的设定数值内容路径层级数量  #在真是使用时就关闭忽略#网关限流配置
#            - name: RequestRateLimiter #限流工具类的名称
#              args:
#                key-resolver: "#{@ipKeyResolver}"   # 使用 SpEL表达式按名称引用 bean
#                #每秒钟只能处理一个请求,测试效果明显
#                redis-rate-limiter.replenishRate: 1 #令牌桶每秒填充速率
#                redis-rate-limiter.burstCapacity: 1 #令牌桶总容量

将启动类发送到注册中心去

  <!--网关,与web有冲突的--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--实现令牌桶--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis-reactive</artifactId></dependency>

使用gateway的限流工具需要进行在启动类中添加bean

   /**** IP地址进行限流*@return*/@Bean(name="ipKeyResolver")public KeyResolver userKeyResolver(){return new KeyResolver(){@Overridepublic Mono<String> resolve(ServerWebExchange exchange){//获取远程客户端IPString hostName = exchange.getRequest().getRemoteAddress().getAddress().getHostAddress();return Mono.just(hostName);}};}

http://www.lryc.cn/news/277247.html

相关文章:

  • win10 - Snipaste截图工具的使用
  • Selenium 学习(0.19)——软件测试之基本路径测试法——拓展案例
  • 工作记录-------正则表达式---小白也能看懂
  • C3-1.3.1 无监督学习——异常检测
  • 1.4.1机器学习——梯度下降+α学习率大小判定
  • 在IntelliJ IDEA中,.idea文件是什么,可以删除吗
  • 【Spring Cloud】Gateway组件的三种使用方式
  • 对象的复制
  • 基于 Python+Neo4j+医药数据,构建了一个知识图谱的自动问答系统
  • Maven之属性管理
  • 快乐学Python,数据分析之获取数据方法「公开数据或爬虫」
  • 前端常用的设计模式
  • 游戏引擎支持脚本编程有啥好处
  • react中概念性总结(二)
  • WPF自定义漂亮顶部工具栏 WPF自定义精致最大化关闭工具栏 wpf导航栏自定义 WPF快速开发工具栏
  • Transformer 的双向编码器表示 (BERT)
  • 关于LwRB环形缓冲区开源库的纯C++版本支持原子操作
  • 微信小程序Canvas画布绘制图片、文字、矩形、(椭)圆、直线
  • Unity Editor实用功能:Hierarchy面板的对象上绘制按按钮并响应
  • 解决录制的 mp4 视频文件在 windows 无法播放的问题
  • 一键与图片对话!LLM实现图片关键信息提取与交互
  • 洛谷 P8833 [传智杯 #3 决赛] 课程 讲解
  • 中国IT产经新闻:新能源汽车发展前景与燃油车的利弊之争
  • 一、数据结构
  • 案例分享:各行业销售岗位的KPI指标制定分享
  • 【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格
  • spring boot 2升级为spring boot 3中数据库连接池druid的问题
  • 客服系统配置之Nginx处理静态资源和动态请求
  • Golang 切片
  • 防止公司办公终端文件数据 | 资料外泄,——自动智能透明加密防泄密软件系统