{"id":35193143,"url":"https://github.com/netbuffer/spring-boot3-dynamictp-demo","last_synced_at":"2025-12-29T06:11:21.524Z","repository":{"id":324648355,"uuid":"1097467774","full_name":"netbuffer/spring-boot3-dynamictp-demo","owner":"netbuffer","description":"spring-boot3 dynamictp demo","archived":false,"fork":false,"pushed_at":"2025-11-17T04:00:44.000Z","size":217,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-17T06:08:47.173Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netbuffer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-16T08:31:00.000Z","updated_at":"2025-11-17T04:00:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/netbuffer/spring-boot3-dynamictp-demo","commit_stats":null,"previous_names":["netbuffer/spring-boot3-dynamictp-demo"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/netbuffer/spring-boot3-dynamictp-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbuffer%2Fspring-boot3-dynamictp-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbuffer%2Fspring-boot3-dynamictp-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbuffer%2Fspring-boot3-dynamictp-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbuffer%2Fspring-boot3-dynamictp-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netbuffer","download_url":"https://codeload.github.com/netbuffer/spring-boot3-dynamictp-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbuffer%2Fspring-boot3-dynamictp-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28111428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-29T02:00:07.021Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-29T06:11:20.482Z","updated_at":"2025-12-29T06:11:21.519Z","avatar_url":"https://github.com/netbuffer.png","language":"Java","readme":"# spring-boot3-dynamictp-demo\n\n![jdk 17](https://img.shields.io/static/v1?label=jdk\u0026message=17\u0026color=blue)\n![spring-boot](https://img.shields.io/static/v1?label=spring-boot\u0026message=3.5.7\u0026color=green)\n![dynamic-tp](https://img.shields.io/static/v1?label=dynamic-tp\u0026message=1.2.2-x\u0026color=D58522)\n\nSpring Boot 3 + Dynamic Thread Pool 集成演示项目，展示如何配置和使用动态线程池管理。  \n\n## 项目特性\n\n- ✅ Spring Boot 3.5.7 + Java 17\n- ✅ Dynamic-TP 1.2.2-x 动态线程池\n- ✅ 线程池监控和告警配置\n- ✅ 异步任务执行示例\n- ✅ 动态线程池参数调整\n\n## 快速开始\n\n### 环境要求\n\n- JDK 17+\n- Maven 3.6+\n\n### 启动应用\n\n```bash\nmvn clean package\njava -jar target/spring-boot3-dynamictp-demo.jar\n```\n\n应用将在 `http://localhost:23398` 启动\n\n## 配置说明\n\n### 动态线程池配置\n\n项目包含以下线程池配置：\n\n1. **threadPoolTaskExecutor** - 异步任务执行器（通过 `Sb3dtdAsyncConfigurer` 配置）\n   - 核心线程数：4\n   - 最大线程数：10  \n   - 队列容量：10\n   - 拒绝策略：CallerRunsPolicy\n\n2. **dtpExecutor1** - 动态线程池（通过 `dynamic-tp.yml` 配置）\n   - 核心线程数：1\n   - 最大线程数：8\n   - 队列容量：128\n   - 线程名前缀：sb3dtd\n\n### 配置文件\n\n- `src/main/resources/application.yaml` - Spring Boot 应用配置\n- `src/main/resources/dynamic-tp.yml` - 动态线程池详细配置\n\n## API 接口\n\n### 线程池管理\n\n- `GET /dynamictp/env?key={key}` - 获取环境变量\n- `GET /dynamictp/executor?name={name}` - 获取线程池信息\n- `POST /dynamictp/execute?name={name}` - 执行异步任务\n- `POST /dynamictp/calc1?value={value}` - 执行计算任务1（使用dtpExecutor1）\n- `POST /dynamictp/calc2?value={value}` - 执行计算任务2（使用默认线程池）\n\n### 监控端点\n\n应用启用了 Spring Boot Actuator，可通过以下端点监控线程池状态：\n\n- `/actuator/metrics` - 监控指标\n- `/actuator/health` - 健康检查\n\n## 动态线程池特性\n\n### 告警配置\n\n项目配置了多种告警类型：\n- 线程池参数变更通知\n- 队列容量使用率告警（阈值80%）\n- 线程池活性告警（阈值80%）\n- 任务拒绝告警\n- 任务执行超时告警\n- 任务排队超时告警\n\n### 通知平台\n\n支持多种告警通知方式：\n- Email 邮件通知\n- Slf4j 日志通知\n\n## 项目结构\n\n```\nsrc/main/java/cn/netbuffer/spring/boot3/dynamictp/demo/\n├── component/\n│   ├── CalcComponent.java          # 异步计算组件\n│   ├── Slf4jDtpNotifier.java       # 动态线程池通知器\n│   └── Slf4jNotifier.java          # Slf4j通知器\n├── config/\n│   ├── DynamicTpConfig.java        # 动态线程池配置\n│   └── Sb3dtdAsyncConfigurer.java  # 异步配置器\n├── controller/\n│   └── DynamicTpController.java    # 动态线程池控制器\n└── SpringBoot3DynamicTpDemoApplication.java # 主应用类\n```\n\n## 相关链接\n\n- [DynamicTP 官方文档](https://dynamictp.cn/guide/use/quick-start.html)\n- [Spring Boot 文档](https://docs.spring.io/spring-boot/3.5.7/reference/)\n- [Spring Web](https://docs.spring.io/spring-boot/3.5.7/reference/web/servlet.html)\n- http://127.0.0.1:23398/actuator/dynamictp\n\n## 开发指南\n\n### 添加新的动态线程池\n\n1. 在 `dynamic-tp.yml` 中添加新的执行器配置\n2. 在代码中使用 `@DynamicTp(\"线程池名称\")` 注解\n3. 通过 `DtpRegistry.getExecutor(\"线程池名称\")` 获取线程池实例\n\n### 自定义告警通知\n\n实现 `DtpNotifier` 接口并注册为Spring Bean，参考 `Slf4jDtpNotifier` 示例。\n\n## 许可证\n\nMIT License\n\n### Reference Documentation\n\nFor further reference, please consider the following sections:\n\n* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)\n* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/3.5.7/maven-plugin)\n* [Create an OCI image](https://docs.spring.io/spring-boot/3.5.7/maven-plugin/build-image.html)\n* [Spring Web](https://docs.spring.io/spring-boot/3.5.7/reference/web/servlet.html)\n\n### Guides\n\nThe following guides illustrate how to use some features concretely:\n\n* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)\n* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)\n* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetbuffer%2Fspring-boot3-dynamictp-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetbuffer%2Fspring-boot3-dynamictp-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetbuffer%2Fspring-boot3-dynamictp-demo/lists"}