Skip to content

如何设置监控扫描目录

HaojunRen edited this page May 31, 2024 · 12 revisions

设置监控扫描目录有三种方式

自动扫描目录

自动扫描目录,即扫描SpringBoot入口目录,具体参考

手工扫描目录

手工配置如下目录

# 路由策略的时候,需要指定对带有@RestController或者@ServiceStrategy注解的类的扫描路径。此项配置作用于RPC方式的调用拦截、提供端的服务隔离、调用链和告警三项功能
spring.application.strategy.scan.packages=com.nepxion.discovery.guide.service

注入扫描目录

自定义注入扫描目录,实现StrategyPackagesInjector,允许同时注入多个,每个类里允许多个扫描目录

public class MyStrategyPackagesInjector implements StrategyPackagesInjector {
    @Override
    public List<PackagesInjectorEntity> getPackagesInjectorEntityList() {
        return Arrays.asList(
                new PackagesInjectorEntity(PackagesInjectorType.RPC, Arrays.asList("com.nepxion.discovery.guide.test.test1")),
                new PackagesInjectorEntity(PackagesInjectorType.PROVIDER_ISOLATION, Arrays.asList("com.nepxion.discovery.guide.test.test2")),
                new PackagesInjectorEntity(PackagesInjectorType.TRACER, Arrays.asList("com.nepxion.discovery.guide.test.test3")),
                new PackagesInjectorEntity(PackagesInjectorType.ALL, Arrays.asList("com.nepxion.discovery.guide.test.test4"))
        );
    }
}

参数含义

  • PackagesInjectorType.RPC表示作用于RPC方式的调用拦截,上面的代码表示对名称为“com.nepxion.discovery.guide.test.test1”的目录下带有@RestController或者@ServiceStrategy注解的类方法将自动执行RPC方式的调用拦截,调用上下文输出到ThreadLocal
  • PackagesInjectorType.PROVIDER_ISOLATION作用于提供端的服务隔离,上面的代码表示对名称为“com.nepxion.discovery.guide.test.test2”的目录下带有@RestController或者@ServiceStrategy注解的类方法将自动执行提供端的服务隔离
  • PackagesInjectorType.TRACER表示作用于调用链,上面的代码表示对名称为“com.nepxion.discovery.guide.test.test3”的目录下带有@RestController或者@ServiceStrategy注解的类方法将自动输出埋点到调用链和告警
  • PackagesInjectorType.ALL表示同时作用于上述三项,不需要一一设定

在配置类里@Bean方式进行扫描目录注入类创建

@Bean
public StrategyPackagesInjector strategyPackagesInjector() {
    return new MyStrategyPackagesInjector();
}




2017-2050 ©Nepxion Studio Apache License

           

Total visits

讲义篇

集成篇

概念篇

实践篇

功能篇

配置篇

扩展篇

测试篇

升级篇

贡献篇

Clone this wiki locally