762 Star 6.6K Fork 1.4K

GVP萧明 / knife4j

 / 详情

微服务网关聚合之后,服务发现模式下,会加入dubbo服务

已完成
创建于  
2023-04-25 09:56

版本信息

springboot3.0.6、SpringCloud2022.0.0、Knife4j4.1.0、dubbo3.2.0、nacos2.2.2

问题

通过gateway聚合后端api,采用服务发现模式自动获取后端服务,由于引用了dubbo3,服务发现用的是nacos,所以在服务发现的时候会把dubbo服务添加到文档列表里面,配置文件里面虽然可以配置排除服务,但是dubbo服务很多,靠配置文件去配估计有点不现实,能通过代码方式修改排除逻辑吗?gateway那个starter里面貌似都没有对SwaggerResourcesProvider的支持。

文档列表

评论 (2)

jia_michael 创建了任务

这样的话,排除服务的逻辑,只能开放一个钩子函数之类的方法出来了,开发者自己实现排除服务的规则

备注一下,在接下来的4.2.0版本中,开发者可以自定义排除实现,示例代码:

@Slf4j
@Component
public class MyExcludeService implements GatewayServiceExcludeService {
    @Override
    public Set<String> exclude(Environment environment, Knife4jGatewayProperties properties, List<String> services) {
        log.info("自定义过滤器.");
        if (!CollectionUtils.isEmpty(services)){
            return services.stream().filter(s -> s.contains("order")).collect(Collectors.toSet());
        }
        return new TreeSet<>();
    }
}

实现GatewayServiceExcludeService.java接口,然后注入Spring容器中,在exclude方法中提供自定义的排除规则实现

萧明 添加了
 
enhancement
标签
萧明 里程碑设置为4.2.0
萧明 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
118100 xiaoym 1578918321
Java
1
https://gitee.com/xiaoym/knife4j.git
git@gitee.com:xiaoym/knife4j.git
xiaoym
knife4j
knife4j

搜索帮助