关于 DynamicTp DynamicTp 是一个基于配置中心实现的轻量级动态线程池管理工具,主要功能可以总结为动态调参.通知报警.运行监控.三方包线程池管理等几大类. 经过多个版本迭代,目前最新版本 v1.0.8 具有以下特性 特性 代码零侵入:所有配置都放在配置中心,对业务代码零侵入 轻量简单:基于 springboot 实现,引入 starter,接入只需简单4步就可完成,顺利3分钟搞定 高可扩展:框架核心功能都提供 SPI 接口供用户自定义个性化实现(配置中心.配置文件解析.通知告警.…
DynamicTp 简介 DynamicTp 是一个基于配置中心实现的轻量级动态线程池管理工具,主要功能可以总结为 动态调参.通知报警.运行监控.三方包线程池管理等几大类. 经过几个版本迭代,目前最新版本v1.0.6具有以下特性 特性 代码零侵入:所有配置都放在配置中心,对业务代码零侵入 轻量简单:基于 springboot 实现,引入 starter,接入只需简单4步就可完成,顺利3分钟搞定 高可扩展:框架核心功能都提供 SPI 接口供用户自定义个性化实现(配置中心.配置文件解析.通知告警.监…
大家好,这篇文章我们来介绍下动态线程池框架(DynamicTp)的adapter模块,上篇文章也大概介绍过了,该模块主要是用来适配一些第三方组件的线程池管理,让第三方组件内置的线程池也能享受到动态参数调整,监控告警这些增强功能. DynamicTp项目地址 目前500多star,感谢你的star,欢迎pr,业务之余给开源贡献一份力量 gitee地址:https://gitee.com/yanhom/dynamic-tp github地址:https://github.com/lyh200/dyn…
前言 使用线程池 ThreadPoolExecutor 过程中你是否有以下痛点呢? 代码中创建了一个 ThreadPoolExecutor,但是不知道那几个核心参数设置多少比较合适 凭经验设置参数值,上线后发现需要调整,改代码重新发布服务,非常麻烦 线程池相对开发人员来说是个黑盒,运行情况不能及时感知到,直到出现问题 如果你有以上痛点,这块开源的动态可监控线程池框架(DynamicTp)或许能帮助到你 此项目由Dromara社区开源,基于配置中心的轻量级动态可监控线程池,项目地址:https:/…
大家好,这篇文章我们来聊下动态线程池开源项目(DynamicTp)的通知告警模块.目前项目提供以下通知告警功能,每一个通知项都可以独立配置是否开启.告警阈值.告警间隔时间.平台等,具体代码请看core模块notify包. 1.核心参数变更通知 2.线程池活跃度告警 3.队列容量告警 4.拒绝策略告警 5.任务执行超时告警 6.任务排队超时告警 DynamicTp项目地址 目前700star,感谢你的star,欢迎pr,业务之余一起给开源贡献一份力量 gitee地址:https://gitee.c…
阐述背景 线程池在日常工作中用的还挺多,当需要异步,批量处理一些任务的时候我们会定义一个线程池来处理. 在使用线程池的过程中有一些问题,下面简单介绍下之前遇到的一些问题. 场景一:实现一些批量处理数据的功能,刚开始线程池的核心线程数设的比较小,然后想调整下,只能改完后重启应用. 场景二:有一个任务处理的应用,会接收 MQ 的消息进行任务的处理,线程池的队列也允许缓存一定数量的任务.当任务处理的很慢的时候,想看看到底有多少没有处理完不是很方便.当时为了快速方便,就直接启动了一个线程去循环打印线程池…
自去年10月底发布GA版本后,Sentinel在近期发布了另一个里程碑版本v1.4(最新的版本号是v1.4.1),加入了开发者关注的集群流控功能. 集群流控简介 为什么要使用集群流控呢?假设我们希望给某个用户限制调用某个 API 的总 QPS 为 50,但机器数可能很多(比如有 100 台).这时候我们很自然地就想到,找一个 server 来专门来统计总的调用量,其它的实例都与这台 server 通信来判断是否可以调用.这就是最基础的集群流控的方式. 那么这个 server 如何部署呢?最直观的…
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.or…
介绍 LiteFlow作为一款轻量级组件编排框架,自开源来,获得了挺多人的关注.社区群也扩展到了接近200人. 早期版本因为疏忽打理,有一些BUG,迭代也不及时.距离上一个稳定版本2.3.3,已经有超过3个月了. 但是作为一个心中怀有远大目标的开源人,我从未放弃过LiteFlow,并且立志把LiteFlow做的更好用,为更多人解决实际问题. 况且,这次不再是我一个人.有了一群愿意为开源贡献的小伙伴. 我们一起,才能走的更远. 所以这次,我们发布了LiteFlow 2.5.0正式版. 如果你是第一…
import java.util.concurrent.Callable; public class MyCallable implements Callable<String> { private String name; public MyCallable(String name){ this.name=name; } @Override public String call() throws Exception { System.out.println("Thread begi…