基于美团文章实现的动态线程池,已开源

大家好, 我是龙台

大家好, 我是龙台

给自己定了个小目标,hippo4j 年底达到 1k star!

基于美团文章实现的动态线程池,已开源

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

Site:https://www.hippox.cn

01

为什么写这个项目?

相信很多程序员都希望一件事,那就是能够参与到某款主流的中间件开发,我也不例外

虽然至今为止没有参与主流中间件的开发,但是无意中发现了一件更“有趣”的事情,hippo4j

hippo4j 的起始还要从看了美团那篇线程池文章说起,Java线程池实现原理及其在美团业务中的实践

可惜的是美团动态线程池并没有开源,而且去掉 GitHub、Gitee 等平台搜索动态线程池,也没有看到企业级可用的

然后就合计自己写,一来可以解决项目中的痛点,二来锻炼自己的编码能力

2021.6.16 号开始,在 GitHub 创建项目并提交了第一行代码

基于美团文章实现的动态线程池,已开源

截止目前 2021.11.22 号为止,开启了为期六个月的编码之路

基于美团文章实现的动态线程池,已开源

中间因为框架的设计不够满意,断层了一段时间,所幸最终还是找到合适的路

02

hippo4j 框架介绍

准备用 hippo4j 官网的一句话来介绍

强大的动态线程池,附带监控报警功能,打造轻量级运维监控平台

(一)强大的动态线程池

解决线程池参数不好预定义配置,完成核心线程、最大线程、阻塞队列大小等参数的动态配置

(二)附带监控报警功能

基于 Java 原生线程池扩展监控报警,报警类型包括:线程池活跃度、阻塞队列容量以及拒绝策略等

(三)打造轻量级运维监控平台

hippo4j 平台包括用户权限、租户、项目、报警、线程池配置等模块;可实时查看线程池实例运行参数,以及线程池运行历史记录

最后,总结下我对于 hippo4j 产出的意义:为业务系统提高线上运行保障

03

如何推广开源项目

最早的前三个月,一直保持着闷头写代码的习惯,因为不知道如何去推广自己的项目

后来看到 GitHub 漫游指南[1] 后来,才算是对项目的推广入了一些门道,这里简短说明下

编写一个好的 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,方便跟进项目的成长

基于美团文章实现的动态线程池,已开源

04

前端控制台

这里贴几张控制台的页面,帮助大家简单认识下 hippo4j

线程池配置

基于美团文章实现的动态线程池,已开源

线程池配置变更

基于美团文章实现的动态线程池,已开源

线程池实例

基于美团文章实现的动态线程池,已开源

线程池运行状态

基于美团文章实现的动态线程池,已开源

报警通知

基于美团文章实现的动态线程池,已开源

05

未来的规划是什么?

hippo4j 未来的版本规划包括三方面,优先级从上到下

高可用部署

hippo4j 属于典型的 C/S 架构,1.0 版本 Server 端仅支持单机部署,因为内存中保留着配置中心的数据

1.0 发布后,下一目标就是将 Server 端支持集群部署,真正意义上支持高可用

运行数据收集上报

线程池运行过程中,对于数据的处理不会保留痕迹,比如线程池运行状态、任务执行耗时以及拒绝策略抛出次数等信息

1.0 之后 hippo4j 会对线程池运行过程中产生的数据,进行收集并上报服务端存档,方便开发人员根据采集的数据预防或者回溯问题

前端 UI 优化

在半个月之前,我几乎没有写过前端代码。如果追溯的话,那就是4年前写的 JQuery 的时候

为了让 hippo4j 能够继续走下去,不得不向命运“低了头”,乖乖写起了前端代码

让后端来写前端代码,进而就导致 hippo4j 控制台界面还是有点糙的

我是个样式控,希望展现给大家的效果是:即实用又时髦。按照发展来看,这个重任还是要落到自己身上的

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132887.html

(1)

相关推荐