android 美团首页 源码_android 美团首页 源码

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

Site:https://www.hippox.cn



为什么写这个项目?


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

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

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

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

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

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

android 美团首页 源码_线程池_02

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

android 美团首页 源码_数据_03

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



框架介绍


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

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

(一)强大的动态线程池

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

(二)附带监控报警功能

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

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

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

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



如何推广开源项目?


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

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



编写一个好的 README

在一个开源项目里,README 是最重要的内容。它快速地介绍了这个项目,并决定了它能不能吸引用户:

  • 这个项目做什么?
  • 它解决了什么问题?
  • 它有什么特性?
  • hello, world 示例程序

这个项目做什么?一句话文案

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



它解决了什么问题?

通过上面一句话不能很好的知道这个项目的具体应用场景,所以需要抛砖引玉将解决的问题带出来

android 美团首页 源码_架构_04

它有什么特性?

当我们有 A、B、C 几个不同的框架的时候,作为一个开发人员,就需要对比他们的特性

android 美团首页 源码_美团_05

android 美团首页 源码_数据_06

hello, world 示例程序

在我们看完了上面的介绍之后,紧接着接一个 hello, world 的示例

具体步骤便不在文章一一说明了,详情查看官网:https://hippox.cn/zh-cn/docs/run/runConsole.html



多渠道推广

如果项目想要获得更多的认可,前提是项目要能被大家伙知道

为此,hippo4j 曾在 CSDN、掘金、微信公众号、开源中国等多个程序员交流平台写文章推广

当流量上来后,就体现到上面流程的重要性。小伙伴读过 README 以及运行过 Demo,大致也就明白了项目是做什么

对项目有兴趣,希望长期关注的小伙伴,自然会对项目进行 Star,方便跟进项目的成长

android 美团首页 源码_数据_07

前端控制台


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



线程池配置

android 美团首页 源码_android 美团首页 源码_08

线程池配置变更

android 美团首页 源码_美团_09

线程池实例

android 美团首页 源码_android 美团首页 源码_10

线程池运行时状态

android 美团首页 源码_线程池_11

报警通知

android 美团首页 源码_架构_12

未来规划是什么?


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



高可用部署

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

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



运行数据收集上报

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

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



前端 UI 优化

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

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

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

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



最后总结

如果说看了上面的介绍,让你对 hippo4j 产生了兴趣,通过以下方式联系到小编,不仅可以解答你对 hippo4j 项目的疑惑,同时也接受正向的功能建议


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

Site:https://www.hippox.cn