大家好, 我是龙台

给自己定了个小目标,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 项目的疑惑,同时也接受正向的功能建议

屏幕前的小伙伴,如果觉得项目功能规划、代码设计还不错的话,辛苦点个

借鉴美团文章实现的动态线程池,已开源相关推荐

  1. 美团:某动态线程池框架是官方开源的么?

    大家好,我是马称. 最近,有很多同学在微信上问我这么一个问题: Hippo4j 动态线程池框架是美团开源的么? 类似于这样的问题还挺多,在这里统一回复下: 美团官方并没有开源任何关于动态线程池的框架. ...

  2. 美团动态线程池实践思路开源项目(DynamicTp),线程池源码解析及通知告警篇

    大家好,这篇文章我们来聊下动态线程池开源项目(DynamicTp)的通知告警模块.目前项目提供以下通知告警功能,每一个通知项都可以独立配置是否开启.告警阈值.告警间隔时间.平台等,具体代码请看core ...

  3. 美团动态线程池实践思路,开源了

    大家好,今天我们来聊一个比较实用的话题,动态可监控的线程池实践,全新开源项目(DynamicTp)地址在文章末尾,欢迎交流学习. 写在前面 稍微有些Java编程经验的小伙伴都知道,Java的精髓在ju ...

  4. 美团动态线程池实践思路已开源

    项目地址 gitee地址:gitee.com/yanhom/dyna- github地址:github.com/lyh200/dyna- 系列文章 动态线程池框架(DynamicTp),监控及源码解析 ...

  5. 美团简单版动态线程池源码实现

    背景 动态线程池,指的是线程池中的参数可以动态修改并生效,比如corePoolSize.maximumPoolSize等. 在工作中,线程池的核心线程数和最大线程数等参数是很难估计和固定的,如果能在应 ...

  6. Hippo4j和DynamicTp动态线程池介绍和使用中遇到的坑

    文章目录 @[toc] 1.前言 1.1Dromara致力于微服务云原生解决方案的组织 1.2 动态线程池的思路 1.3Hippo4j和DynamicTp动态线程池解决什么痛点 2.介绍 2.1Hip ...

  7. 轻量级动态线程池才是“王道”?

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

  8. linux动态线程池--原理,这儿的代码不完整

    本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关.另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量.文章的最后,我们 ...

  9. apollo源码分析 感知_Kitty中的动态线程池支持Nacos,Apollo多配置中心了

    目录 回顾昨日 nacos 集成 Spring Cloud Alibaba 方式 Nacos Spring Boot 方式 Apollo 集成 自研配置中心对接 无配置中心对接 实现源码分析 兼容 A ...

最新文章

  1. 关于亿级账户数据迁移,你应该试试这种方法...
  2. What is a lambda expression in C++11?
  3. pyhton url参数和字典互转
  4. 技术走向管理一些思考(1)-性格特质和自我管理
  5. opnet中的例子模型
  6. redistemplate hash 过期时间_Redis开发 —— 过期消息通知实现(Springboot)
  7. windows python安装opencv_关于OpenCV-Python安装(缺少ffmpeg):OpenCV-Python安装(缺少ffmpeg)-Windows...
  8. bluecam连接步骤说明_厂家详解旋片式真空泵使用说明
  9. python面向对象类_python面向对象-类和对象
  10. Creating a Pager Control for ASP.NET以及Dino Esposito 分页组件的一个 Bug
  11. codeforces 665E Beautiful Subarrays
  12. 字体设计 css_设计好CSS字体堆栈的三个步骤
  13. Python个人博客项目-2.我的主页应用开发
  14. 数据包络分析(DEA)详解(以第八届宁夏省赛为例)
  15. 联想MIIX510 黑苹果教程 整机升级
  16. 读取cpu温度的api_获取CPU的温度的方法
  17. MySQL大批量造数据
  18. 09-01-28 自助装机
  19. HTML 动态夜空特效
  20. MySQL-备份恢复

热门文章

  1. 网络期刊(个人使用)
  2. iOS App thinning【( 通过 LinkMap、mach-o寻找优化点)】1、段迁移rename_section减小__TEXT 段大小(需关闭 Bitcode)2、查无用方法/类/宏/图
  3. 牛客网练习—《网络基础》DAY4
  4. Phoenix FD Maya 软件插件
  5. (day12)css3基础
  6. SEO图片优化基本技巧
  7. 哈工大计算机系统2022大作业:程序人生-Hello‘s P2P
  8. 从《人民的名义》看声纹识别技术在案件侦查中的应用
  9. 有效地报告自动测试结果
  10. 狐狸文│区块链不是用来讲故事的