Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
chen.ma 3660b0dfaa
refactor: 调整 Dynamic ThreadPool Starter 包级目录.
3 years ago
alarm feat: 添加报警 Module. 3 years ago
common feat: 线程池阻塞队列 SPI 方式集成. 3 years ago
config fix: 修复 Mybatis Plus 分页组件数据库. 3 years ago
console refactor: 重构 Console 相关控制层基础路径以及注释. 3 years ago
dynamic-threadpool-spring-boot-starter refactor: 调整 Dynamic ThreadPool Starter 包级目录. 3 years ago
example refactor: 重构动态线程池自动装配. 3 years ago
registry feat: 添加注册中心 Module. 3 years ago
server feat: 添加 hikari 连接池配置. 3 years ago
.gitignore first commit 3 years ago
LICENSE feat: 功能持续更新. 3 years ago
README.md docs: Update readme. 3 years ago
pom.xml feat: 新增 Console Module. 3 years ago

README.md

ThreadPool, so easy.

LICENSE


我有一个 IDEA动态线程池监控主意来源于美团技术公众号 点击查看美团线程池文章


看了文章后深受感触,再加上最近线上线程池的不可控以及不可逆等问题,想做出一个兼容性、功能性、易上手等特性集于一身的的开源项目。目标还是要有的,虽然过程可能会艰辛


目前这个项目是由作者独立开发,时间在下班后、周六天等。具体什么时候能发布 1.0 版本不好说,需要看实际的开发情况


根据目前的想法美团技术文章中支持的特性DTPDynamic Thread Pool项目都会兼容进去可能部分会因为作者技术有限无法兼容

比如:

  • 修改阻塞队列长度

  • 修改线程池核心线程数、最大线程数、线程存活时长...

  • 线程池详细信息监控

  • 线程池负载报警

  • ...


项目不会强依赖某个不通用的中间件比如配置中心Nacos、Apollo、Consul... 有可能会将组件全部支持,自定义选择使用


美团动态化线程池功能架构

图片来源自美团技术博客


本地部署

目前动态线程池功能已经完成,大家可以直接把代码拉到本地运行


项目数据库连接是作者个人 ECS Docker 搭建的 MySQL防君子不防小人大家直接使用即可


启动 server 模块下 ServerApplication 启动类


启动 example 模块下 ExampleApplication 启动类


可以通过调用接口修改线程池配置


修改请求如下,在做示例时不要改动 tenantId、itemId、tpId


POST http://localhost:6691/v1/cs/configs


{
    "tenantId": "common",
    "itemId": "message-center",
    "tpId": "message-consume",
    "coreSize": 3,
    "maxSize": 10,
    "queueType":9,
    "capacity":1000,
    "keepAliveTime" : 1000,
    "isAlarm":1,
    "capacityAlarm":80,
    "livenessAlarm":80
}

接口调用成功后,观察 example 控制台日志输出,日志输出包括不限于此信息即为成功


[🚀] Changed thread pool. coreSize :: x, maxSize :: x, queueType :: x, capacity :: x, keepAliveTime :: x