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

网关相关配置

小型项目网关配置

(不需要中间件 nacos,consul,Eureka)

只需要 服务路由以及服务发现(注册)即可。

结构: spring.cloud.gateway

routes

配置路由

uri:路由目的地 服务

predicates:谓词,规则

-Path :请求匹配路径

-name:读取请求体

args:

​        inClass:将请求体转换为字符串【前提是能转换,如果转换失败,则网关报错,将这个请求拦截,不让继续路由转发,正常业务中,传递的都是json字符串,所以inClass一般是指定为String或Object类型】

针对上面的inClass字段,我这里手贱指定为Integer类型,则会报错:

org.springframework.web.server.ServerWebInputException: 400 BAD_REQUEST "Failed to read HTTP message"; nested exception is org.springframework.core.codec.DecodingException: JSON decoding error: Cannot deserialize value of type `java.lang.Integer` from Object value (token `JsonToken.START_OBJECT`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.Integer` from Object value (token `JsonToken.START_OBJECT`)

​        predicate:自定义predicate接口,我们可以编写实现类,去写一些逻辑,比如针对请求头、请求体里面的字段...

filters:

​        -RewritePath = 路径A , 路径B        将路径A 替换为路径B ,经常结合正则表达式


对于同一接口,根据不同参数字段,去路由到不同服务,也可以在predicates中指定Header的字段

底层其实是将predicates下的一行行信息,转换成RouteDefinition对象,然后再分割成数组,最后被封装成一个个PredicationDefinition对象,放到list中


discovery

服务注册,将来我需要路由的服务先注册到本地【通过client.simple.instances】

两个定义的内容是一样的,serviceId表明当前服务的唯一ID,instanceId表明当前服务下可能存在多个实例,保证每个实例唯一。

 

 

http://www.dtcms.com/a/60201.html

相关文章:

  • Vue开发前端导航栏设计【常见问题+示例代码】
  • 【C#】FrmImport导入组件
  • Java基础系列:深入解析Object类与面向对象编程核心机制
  • 数据库二三事(14)
  • “量子心灵AI“的监控仪表盘 - javascript网页设计案例
  • CTF 架构
  • 考研数一复习之拉格朗日中值定理求解函数极限
  • 第3章 nmap网络映射器(网络安全防御实战--蓝军武器库)
  • NebulaGraph学习笔记-SessionPool之getSession
  • OINH系列(自编)---> <Page 2-[1]>题库原题(少)
  • JS中的闭包(closures)一种强大但易混淆的概念
  • 【学习思维模型】
  • python 在进程中动态加载模块
  • C++复试笔记(一)
  • OpenEuler-24.03-LTS-SP1安装
  • 解决VS Code中Python模块导入路径问题的完整指南
  • 【C语言】数组篇
  • 大模型系列课程学习-基于Vllm/Ollama/Ktransformers完成Deepseek推理服务部署
  • Meta 计划在 Llama 4 中引入改进的语音功能,接近双向自然对话
  • DeepSeek 与 ChatGPT的主要区别
  • Browser-Use在UI自动化测试中的应用
  • vue源码(二)
  • Ae 效果详解:VR 发光
  • 【已解决】MobaXterm中X11-Forwarding无法使用
  • Javascript 函数
  • Web3 的去中心化治理:如何实现透明与公正
  • 【后端开发】go-zero微服务框架实践(goland框架对比,go-zero开发实践,文件上传问题优化等等)
  • Elasticsearch:“Your trial license is expired”
  • 学习LED驱动知识(二)
  • 使用kolla-ansible单点部署openstack云平台