Knife4j v4.3.0 发布,深挖 Gateway 网关聚合场景,解决各种疑难杂症
大家好,Knife4j v4.3.0版本发版了
4.3.0版本主要解决在Spring Cloud Gateway网关组件下聚合Swagger2或者OpenAPI3提供最简单的配置,简化开发者工作。
最简单的配置如下(4个配置属性完成所有子服务的网关聚合):
knife4j: gateway: enabled: true strategy: discover discover: # 聚合所有子服务(swagger2规范),子服务是3规范则替换为openapi3 version: swagger2 enabled: true
Maven坐标
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-gateway-spring-boot-starter</artifactId> <version>4.3.0</version> </dependency>
更新日志
优化knife4j-gateway
组件
1、在gateway网关聚合服务中,排除其他服务支持正则表达式
knife4j: gateway: enabled: true strategy: discover discover: version: swagger2 enabled: true excluded-services: # 排除order开头的配置 - order.*
2、聚合子服务时,两个子服务是根路由转发时只聚合单个服务的bug(主要是order
排序属性导致)
3、启用DisocverClient
作为网关默认转发路由场景下聚合失败的问题
4、针对Swagger2规范聚合失败的问题
5、在手动聚合模式(manual)下同时支持swagger2
和openapi3
规范的聚合
knife4j: gateway: enabled: true strategy: manual routes: # swagger2 - name: 订单openapi2 service-name: user-service url: /order-service-openapi2/v2/api-docs?group=default context-path: / # openapi3 - name: 订单openapi3 service-name: order-service url: /order/v3/api-docs/default context-path: /order
6、在子服务全部是swagger2规范情况下contextPath路径错误的问题
7、优化knife4j-gateway
的部分代码结构及聚合场景,目前聚合子服务路由在服务发现(discover
)模式下主要4种模式,主要包括:
- 基于Spring Cloud Gateway配置的routes规则解析子服务路由,数据来源:
spring.cloud.gateway.routes
- 在discover服务发现场景下,针对自定义添加的routes,默认再次追加,数据来源:
knife4j.gateway.routes
- 服务发现discover模式下,开发者在网关成的路由转发模式默认通过
DiscoveryClient
的默认方式转发路由,规则是pattern:/service-id/**
- 接收编码方式动态注入Spring Cloud Gateway网关的路由,进行聚合转发
其他部分
1、修复@ApiSupport
注解不生效的问题Gitee#PR89
2、数据存在枚举值时,SwaggerModel无法正常展开Gitee#PR90
3、解决组件冲突的问题GitHub#630
4、增加title属性的支持Gitee#I7KUYP
感谢
非常感谢以下开发者的PR贡献(排名不分先后):
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AREX 如何支持 Dubbo 自定义私有协议的录制回放
背景 AREX 是一款开源的基于真实请求与数据的自动化回归测试平台,利用 Java Agent 技术与比对技术,通过流量录制回放能力实现快速有效的回归测试。 Dubbo 是一款高性能的分布式服务框架,它基于 RPC 的服务调用和服务治理,具有透明化的远程调用、负载均衡、服务注册与发现、高度可扩展性、服务治理等特点。 目前 AREX 支持录制使用 Dubbo2x、Dubbo3x 协议的接口请求,并且在基于 Dubbo3x 版本开发的调度服务(Schedule Service)中支持回放使用这两种原生版本 Dubbo 协议的用例。但是对于用户自定义扩展的 Dubbo协议、序列化方式,甚至是基于 Dubbo 做的很多个性化改造(如dubbox),目前都不支持。 例如社区某用户与我们反馈,其公司使用的 Dubbo 协议是基于 Dubbox 做的改造,对于协议的包结构和序列化反序列化方式都做了改造,几乎可以理解为是一种全新的协议,这种特定类型的 Dubbo 协议无法使用 AREX 进行录制和回放操作。为了解决该问题,我们在主分支上 fork 出来了一个定制化版本,实现了对该协议的录制回放,但这种...
- 下一篇
Simple Admin - Go 语言分布式后台管理系统 v1.1.1 发布
Simple Admin Tools v1.5.14 更新 更新:同步官方最新代码 Simple Admin Common v1.1.1 更新 优化: ent mixin 添加注释 新增: state mixin 用于使用 bool 类型的状态 Simple Admin Core/Job v1.1.1 更新 更新: 更新依赖 修复: 已知部分问题,更新 all in one 部署文件 修复: 重新生成 ent 代码 Simple Admin MCMS v1.1.1 更新 修复: 初始化时设置默认 sms 服务商 Simple Admin Backend UI v1.1.1 更新 修复: 暗夜模式下 modal 错位问题 优化: FMS columns 宽度导致的操作按钮被遮挡 Goctls v1.5.17 更新 新增: Drone CI 文件生成支持,用于 CI/CD Drone CI 生成文档:https://doc.ryansu.pro/zh/guide/cicd/1-drone.html 项目文档地址:https://doc.ryansu.pro/zh/ Gitee:https...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker快速安装Oracle11G,搭建oracle11g学习环境