Erlo

DynamicTP-动态线程池管理工具本地部署-Springboot + Nacos + Prometheus + Grafana

2025-02-20 19:29:26 发布   30 浏览  
页面报错/反馈
收藏 点赞

一、官方地址 DynamicTP

二、踩坑

先要把依赖版本搞定,后面的配置才能顺利生效

1.一定要确定好自己是什么项目,SpringBoot或SpringCloud

不同类型的项目使用的DynamicTP的配置不相同

如果pom.xml文件中带有spring-cloud-dependencies则是SpringCloud项目

2.依赖版本

首先SpringBoot版本要和Nacos版本可以兼容,可以先单独部署一个Nacos的配置中心应用,然后再添加DynamicDP的配置

我使用的依赖版本为 SpringBoot 2.1.1.RELEASE + Nacos 0.2.10 + DynamicTP 1.2.0

官方提示

image

可以参考我的pom.xml



    4.0.0
    com.dong
    myspringboot
    0.0.1-SNAPSHOT
    myspringboot
    Demo project for Spring Boot
    
        0.2.10
    

    
        
            org.springframework.boot
            spring-boot-starter-actuator
            2.1.1.RELEASE
        

        
            org.springframework.boot
            spring-boot-starter-actuator
            2.1.1.RELEASE
        

        
            com.alibaba.boot
            nacos-config-spring-boot-starter
            ${nacos-config-spring-boot.version}
        

        
            com.alibaba.boot
            nacos-config-spring-boot-actuator
            ${nacos-config-spring-boot.version}
        

        
            org.dromara.dynamictp
            dynamic-tp-spring-boot-starter-nacos
            1.2.0
        
        
            org.springframework.boot
            spring-boot-starter-web
            2.1.1.RELEASE
            compile
            
                
                    com.fasterxml.jackson.core
                    jackson-databind
                
              
        

        
            com.fasterxml.jackson.core
            jackson-databind
            2.14.2
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.1
                
                    1.8
                    1.8
                    UTF-8
                
            
            
                org.springframework.boot
                spring-boot-maven-plugin
                2.1.1.RELEASE
                
                    com.dong.myspringboot.MyspringbootApplication
                    true
                
                
                    
                        repackage
                        
                            repackage
                        
                    
                
            
        
    


3.DynamicTP配置

先贴上我的application.yml

server:
  port: 9089
spring:
  application:
    name: my-service
  profiles:
    active: public

nacos:
  config:
    server-addr: 127.0.0.1:8848
    type: yaml
    data-ids: my-service-dev,my-dtp-service  # 逗号分隔,第一个是项目主配置,第二个是动态线程池配置
    auto-refresh: true
    group: DEFAULT_GROUP
    bootstrap:
      enable: true
      log-enable: true

data-ids要和Nacos配置中一模一样,比如我的DP配置是my-dtp-service,那么我的Nacos中也是一样的

image

四、报错 java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/json/JsonMapper

这是因为依赖冲突了

mvn dependency:tree | findstr "jackson"命令执行后如果有输出则是有冲突


    org.springframework.boot
    spring-boot-starter-web
    
        
            com.fasterxml.jackson.core
            jackson-databind
        
    



    com.fasterxml.jackson.core
    jackson-databind
    2.14.2

在pom文件中添加以上代码来剔除冲突依赖

五.

如果项目启动后控制台输出

DtpRegistry has been initialized, remote executors: [], local executors: []

那么大概率是Nacos中的配置没有读到,需要再确认依赖版本或者application.yml中的配置

六、Prometheus + Grafana实现图形化监控

官网地址:prometheus+grafana 接入流程

1. Prometheus + Grafana安装

下载链接:[Prometheus][Grafana]

如果跟我一样是windows系统,可以下载zip格式的包,解压后就能直接使用了

我使用的Prometheus版本是3.2.0,Grafana版本是11.2.0

启动Prometheus后,在浏览器中输入127.0.0.1:9090可以进入图形化界面,配置完成后会显示一个Endpoint

image

2. 项目中配置Prometheus

2.1 引入依赖


        io.micrometer
        micrometer-registry-prometheus
        1.1.2

!!!!依赖版本是个坑

如果SpringBoot版本不高的话,建议选择低版本的Prometheus依赖,依赖不匹配的话所需的接口暴露不出来,会无法监听线程池的使用情况

2.2 pom.xml文件中添加指标暴露配置

management:
  metrics:
    export:
      prometheus:
        enabled: true
  endpoints:
    web:
      exposure:
        include: '*'

2.3 修改Prometheus配置

修改prometheus.yml

scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ["localhost:9089"]  #此处的ip和端口为要监听的SpringBoot项目的ip和端口

2.4 验证一下

浏览器中输入http://127.0.0.1:9089/actuator,会展示出已经暴露的actuator

搜索prometheus,如果能找到,则说明已经可以监听线程池情况了

image

3. Grafana配置

3.1 获取Grafana的配置json文件

官网的Grafana配置文件:传送门

3.2 配置

浏览器输入127.0.0.1:3000,进入Grafana的图形化界面

image

选择刚才下载的json文件导入,或者直接复制到窗口进行导入

image

导入后需要修改每个小窗口的数据source

image

再选择对应的数据项

image

大功告成了

image

最后希望大家都能部署成功

image

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认