聊聊动态线程池

一、前言

最初设计 Hippo4j 的初衷是尽可能提高以及保障线程池对于线上应用的作用,所以加了很多个性化功能,这也间接导致强依赖 Hippo4j Server 项目。

自 Hippo4j 1.0.0 版本发布之后,不断有社区小伙伴提出相同的一个问题,如何能够轻量级使用动态线程池?

这不,它来了。

GitHub:https://github.com/acmenlt/dynamic-threadpool

Gitee:https://gitee.com/acmenlt/dynamic-threadpool

随着 Hippo4j 1.1.0 版本的发布,除了在原有功能进行迭代输出外,额外添加了一种使用模式:依赖配置中心实现的轻量级动态线程池,将 Hippo4j 的源代码从一种使用模式拆分为两种。

两种模式共用一套核心源代码,保留了基础且大家关注的功能,模块取名为:Hippo4j Core。

二、Hippo4j Core

所谓“一图胜千言”,小编画了一张图,来描述它的交互行为以及所支持功能。

只要你们项目中有配置中心,引用 hippo4j-core-spring-boot-starter 后,就可以使用以上功能啦。

1. 动态线程池参数更新

客户端项目启动时向配置中心请求动态线程池配置,获取配置后创建 DynamicThreadPool 线程池。

并向配置中心发起监听事件,当配置中心中配置发生变更时,监听事件实时修改项目中的线程池参数。

如在配置中心变更了动态线程池配置,会在日志中打印变更信息:

[MESSAGE-CONSUME] Changed thread pool. 
    coreSize :: [1 => 10]
    maxSize :: [1 => 20]
    queueType :: [ResizableCapacityLinkedBlockIngQueue => ResizableCapacityLinkedBlockIngQueue]
    capacity :: [1024 => 2048]
    keepAliveTime :: [1000 => 1000]
    executeTimeOut :: [600 => 600]
    rejectedType :: [DiscardOldestPolicy => DiscardOldestPolicy]
    allowCoreThreadTimeOut :: [false => false]

同时,通过消息推送通知相关负责人。目前通知平台已支持钉钉、企业微信以及飞书三种常用办公软件,以企业微信群聊机器人举例:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值