借鉴美团文章实现的动态线程池,已开源
大家好, 我是龙台
给自己定了个小目标,hippo4j 年底达到 1k star!
GitHub:https://github.com/acmenlt/dynamic-threadpool
Site:https://www.hippox.cn
为什么写这个项目?
相信很多程序员都希望一件事,那就是能够参与到某款主流的中间件开发,我也不例外
虽然至今为止没有参与主流中间件的开发,但是无意中发现了一件更“有趣”的事情,hippo4j
hippo4j 的起始还要从看了美团那篇线程池文章说起,Java线程池实现原理及其在美团业务中的实践
可惜的是美团动态线程池并没有开源,而且去 GitHub、Gitee 等平台搜索动态线程池,也没有看到企业级可用的
然后就合计自己写,一来可以解决项目中的痛点,二来锻炼自己的编码能力
2021.6.16 号开始,在 GitHub 创建项目并提交了第一行代码
截止目前 2021.11.22 号为止,开启了为期六个月的编码之路
中间因为框架的设计不够满意,断层了一段时间,所幸最终还是找到合适的路
框架介绍
准备用 hippo4j 官网的一句话来介绍
强大的动态线程池,附带监控报警功能,打造轻量级运维监控平台
(一)强大的动态线程池
解决线程池参数不好预定义配置,完成核心线程、最大线程、阻塞队列大小等参数的动态配置
(二)附带监控报警功能
基于 Java 原生线程池扩展监控报警,报警类型包括:线程池活跃度、阻塞队列容量以及拒绝策略等
(三)打造轻量级运维监控平台
hippo4j 平台包括用户权限、租户、项目、报警、线程池配置等模块;可实时查看线程池实例运行参数,以及线程池运行历史记录
最后,总结下我对于 hippo4j 产出的意义:为业务系统提高线上运行保障
如何推广开源项目?
最早的前三个月,一直保持着闷头写代码的习惯,因为不知道如何去推广自己的项目
后来看到 GitHub 漫游指南 后,才算是对项目的推广入了一些门道,这里简短说明下
编写一个好的 README
在一个开源项目里,README 是最重要的内容。它快速地介绍了这个项目,并决定了它能不能吸引用户:
- 这个项目做什么?
- 它解决了什么问题?
- 它有什么特性?
- hello, world 示例程序
这个项目做什么?一句话文案
比如:强大的动态线程池,附带监控报警功能,打造轻量级运维监控平台
它解决了什么问题?
通过上面一句话不能很好的知道这个项目的具体应用场景,所以需要抛砖引玉将解决的问题带出来
它有什么特性?
当我们有 A、B、C 几个不同的框架的时候,作为一个开发人员,就需要对比他们的特性
hello, world 示例程序
在我们看完了上面的介绍之后,紧接着接一个 hello, world 的示例
具体步骤便不在文章一一说明了,详情查看官网:https://hippox.cn/zh-cn/docs/run/runConsole.html
多渠道推广
如果项目想要获得更多的认可,前提是项目要能被大家伙知道
为此,hippo4j 曾在 CSDN、掘金、微信公众号、开源中国等多个程序员交流平台写文章推广
当流量上来后,就体现到上面流程的重要性。小伙伴读过 README 以及运行过 Demo,大致也就明白了项目是做什么
对项目有兴趣,希望长期关注的小伙伴,自然会对项目进行 Star,方便跟进项目的成长
前端控制台
这里贴几张控制台的页面,帮助大家简单认识下 hippo4j
线程池配置
线程池配置变更
线程池实例
线程池运行时状态
报警通知
未来规划是什么?
hippo4j 未来的版本规划包括三方面,优先级从上到下
高可用部署
hippo4j 属于典型的 C/S 架构,1.0 版本 Server 端仅支持单机部署,因为内存中保留着配置中心的数据
1.0 发布后,下一目标就是将 Server 端支持集群部署,真正意义支持高可用
运行数据收集上报
线程池运行过程中,对于数据的处理不会保留痕迹,比如线程池运行状态、任务执行耗时以及拒绝策略抛出次数等信息
1.0 之后 hippo4j 会对线程池运行过程中产生的数据,进行收集并上报服务端存档,方便开发人员根据采集的数据预防或者回溯问题
前端 UI 优化
在半个月之前,我几乎没有写过前端代码。如果追溯的话,那就是4年前写 JQuery 的时候
为了让 hippo4j 能够继续走下去,不得不向命运“低了头”,乖乖写起了前端代码
让后端来写前端代码,进而就导致 hippo4j 的控制台界面还是有点糙的
我是个样式控,希望展现给大家的效果是:即实用又时髦。按照发展来看,这个重任还是要落到自己身上的
最后总结
如果说看了上面的介绍,让你对 hippo4j 产生了兴趣,通过以下方式联系到小编,不仅可以解答你对 hippo4j 项目的疑惑,同时也接受正向的功能建议
屏幕前的小伙伴,如果觉得项目功能规划、代码设计还不错的话,辛苦点个
借鉴美团文章实现的动态线程池,已开源相关推荐
- 美团:某动态线程池框架是官方开源的么?
大家好,我是马称. 最近,有很多同学在微信上问我这么一个问题: Hippo4j 动态线程池框架是美团开源的么? 类似于这样的问题还挺多,在这里统一回复下: 美团官方并没有开源任何关于动态线程池的框架. ...
- 美团动态线程池实践思路开源项目(DynamicTp),线程池源码解析及通知告警篇
大家好,这篇文章我们来聊下动态线程池开源项目(DynamicTp)的通知告警模块.目前项目提供以下通知告警功能,每一个通知项都可以独立配置是否开启.告警阈值.告警间隔时间.平台等,具体代码请看core ...
- 美团动态线程池实践思路,开源了
大家好,今天我们来聊一个比较实用的话题,动态可监控的线程池实践,全新开源项目(DynamicTp)地址在文章末尾,欢迎交流学习. 写在前面 稍微有些Java编程经验的小伙伴都知道,Java的精髓在ju ...
- 美团动态线程池实践思路已开源
项目地址 gitee地址:gitee.com/yanhom/dyna- github地址:github.com/lyh200/dyna- 系列文章 动态线程池框架(DynamicTp),监控及源码解析 ...
- 美团简单版动态线程池源码实现
背景 动态线程池,指的是线程池中的参数可以动态修改并生效,比如corePoolSize.maximumPoolSize等. 在工作中,线程池的核心线程数和最大线程数等参数是很难估计和固定的,如果能在应 ...
- Hippo4j和DynamicTp动态线程池介绍和使用中遇到的坑
文章目录 @[toc] 1.前言 1.1Dromara致力于微服务云原生解决方案的组织 1.2 动态线程池的思路 1.3Hippo4j和DynamicTp动态线程池解决什么痛点 2.介绍 2.1Hip ...
- 轻量级动态线程池才是“王道”?
一.前言 最初设计 Hippo4j 的初衷是尽可能提高以及保障线程池对于线上应用的作用,所以加了很多个性化功能,这也间接导致强依赖 Hippo4j Server 项目. 自 Hippo4j 1.0.0 ...
- linux动态线程池--原理,这儿的代码不完整
本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关.另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量.文章的最后,我们 ...
- apollo源码分析 感知_Kitty中的动态线程池支持Nacos,Apollo多配置中心了
目录 回顾昨日 nacos 集成 Spring Cloud Alibaba 方式 Nacos Spring Boot 方式 Apollo 集成 自研配置中心对接 无配置中心对接 实现源码分析 兼容 A ...
最新文章
- 关于亿级账户数据迁移,你应该试试这种方法...
- What is a lambda expression in C++11?
- pyhton url参数和字典互转
- 技术走向管理一些思考(1)-性格特质和自我管理
- opnet中的例子模型
- redistemplate hash 过期时间_Redis开发 —— 过期消息通知实现(Springboot)
- windows python安装opencv_关于OpenCV-Python安装(缺少ffmpeg):OpenCV-Python安装(缺少ffmpeg)-Windows...
- bluecam连接步骤说明_厂家详解旋片式真空泵使用说明
- python面向对象类_python面向对象-类和对象
- Creating a Pager Control for ASP.NET以及Dino Esposito 分页组件的一个 Bug
- codeforces 665E Beautiful Subarrays
- 字体设计 css_设计好CSS字体堆栈的三个步骤
- Python个人博客项目-2.我的主页应用开发
- 数据包络分析(DEA)详解(以第八届宁夏省赛为例)
- 联想MIIX510 黑苹果教程 整机升级
- 读取cpu温度的api_获取CPU的温度的方法
- MySQL大批量造数据
- 09-01-28 自助装机
- HTML 动态夜空特效
- MySQL-备份恢复
热门文章
- 网络期刊(个人使用)
- iOS App thinning【( 通过 LinkMap、mach-o寻找优化点)】1、段迁移rename_section减小__TEXT 段大小(需关闭 Bitcode)2、查无用方法/类/宏/图
- 牛客网练习—《网络基础》DAY4
- Phoenix FD Maya 软件插件
- (day12)css3基础
- SEO图片优化基本技巧
- 哈工大计算机系统2022大作业:程序人生-Hello‘s P2P
- 从《人民的名义》看声纹识别技术在案件侦查中的应用
- 有效地报告自动测试结果
- 狐狸文│区块链不是用来讲故事的