一、官方地址 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
官方提示
可以参考我的pom.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.dong</groupId>
- <artifactId>myspringboot</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>myspringboot</name>
- <description>Demo project for Spring Boot</description>
- <properties>
- <nacos-config-spring-boot.version>0.2.10</nacos-config-spring-boot.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- <version>2.1.1.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- <version>2.1.1.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba.boot</groupId>
- <artifactId>nacos-config-spring-boot-starter</artifactId>
- <version>${nacos-config-spring-boot.version}</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba.boot</groupId>
- <artifactId>nacos-config-spring-boot-actuator</artifactId>
- <version>${nacos-config-spring-boot.version}</version>
- </dependency>
- <dependency>
- <groupId>org.dromara.dynamictp</groupId>
- <artifactId>dynamic-tp-spring-boot-starter-nacos</artifactId>
- <version>1.2.0</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <version>2.1.1.RELEASE</version>
- <scope>compile</scope>
- <exclusions>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.14.2</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.1</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <version>2.1.1.RELEASE</version>
- <configuration>
- <mainClass>com.dong.myspringboot.MyspringbootApplication</mainClass>
- <skip>true</skip>
- </configuration>
- <executions>
- <execution>
- <id>repackage</id>
- <goals>
- <goal>repackage</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </project>
复制代码 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中也是一样的
四、报错 java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/json/JsonMapper
这是因为依赖冲突了
mvn dependency:tree | findstr "jackson"下令执行后如果有输出则是有冲突
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <exclusions>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.14.2</version>
- </dependency>
复制代码 在pom文件中添加以上代码来剔除冲突依赖
五.
如果项目启动后控制台输出
DtpRegistry has been initialized, remote executors: [], local executors: []
那么大概率是Nacos中的配置没有读到,需要再确认依赖版本大概application.yml中的配置
最后盼望各人都能部署成功
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |