Update README.md

pull/234/head
chen.ma 2 years ago
parent f1b9c778e4
commit 6bffd919c2

@ -15,108 +15,40 @@
</a>
</p>
## Hippo-4J
## 介绍
Hippo-4J 基于 **美团动态线程池** 设计理念开发,针对线程池增强 **动态调参、监控、报警功能**
动态可观测线程池框架,为业务系统提高线上运行保障能力。有两种使用模式:[依赖配置中心](https://hippo4j.cn/pages/2f674h/) 和 [无中间件依赖](https://hippo4j.cn/pages/2f674a/)
通过 Web 控制台对线程池参数进行动态调整,支持 **集群内线程池的差异化配置**。内置线程池参数变更通知,以及 **运行过载报警** 功能(支持多通知平台)。
## 特性
按照租户、项目、线程池的维度划分,配合系统权限,让不同的开发、管理人员负责自己系统的线程池。
1.1.0 版本发布后Hippo-4J 分为两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220319154626314.png)
### hippo4j-core
**轻量级动态线程池管理**,依赖 Apollo、Nacos、Zookeeper 等三方配置中心(任选其一)完成线程池参数动态变更,支持运行时报警、监控等功能。
> 监控功能配置详见:[线程池监控](https://hippo4j.cn/pages/2f67ll)
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-202203271737049821.png)
### hippo4j-server
**部署 hippo4j-server 服务**,通过可视化 Web 界面完成线程池的创建、变更以及查看,不依赖三方中间件。
相比较 hippo4j-core功能会更强大但同时也引入了一定的复杂性。需要部署一个 Java 服务,以及依赖 MySQL 数据库。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/1644032018254-min.gif)
### 使用总结
| | hippo4j-core | hippo4j-server |
| ---- | ---------------------------------------------------- | ------------------------------------------------------------ |
| 依赖 | Nacos、Apollo、Zookeeper 配置中心(任选其一) | 部署 Hippo-4J Server内部无依赖中间件 |
| 使用 | 配置中心补充线程池相关参数 | Hippo-4J Server Web 控制台添加线程池记录 |
| 功能 | 包含基础功能:参数动态化、运行时监控、报警等 | 基础功能之外扩展控制台界面、线程池堆栈查看、线程池运行信息实时查看、历史运行信息查看、线程池配置集群个性化等 |
使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-core 使用即可;如果希望更多的功能,可以选择 hippo4j-server。
**两者在进行替换的时候,无需修改业务代码**。
## 解决什么问题
简单来说Hippo-4J 主要为我们解决了下面这些使用原生线程池存在的问题:
| | 原生线程池 | Hippo-4J 增强后 |
| ---------------- | ------------ | ---------------------------------------------- |
| 线程池管理 | 无 | 管理应用所有线程池 |
| 运行负载报警 | 无 | 内置四种报警策略,通过群机器人推送报警信息 |
| 运行时数据查看 | 无 | 线程池数据实时查看,以及最近半小时运行图表展示 |
| 线程池修改参数 | 需重启应用 | 应用运行时动态变更线程池参数 |
| 线程池优雅关闭 | 应用内需扩展 | 支持在指定时间内等待任务完成 |
| 线程池上下文传递 | 应用内需扩展 | 支持上下文传递 |
## 报警通知
Hippo-4J 已接入钉钉、企业微信以及飞书平台,提供了 **线程池参数变更通知** 和 **运行时报警** 功能。示例如下:
<table>
<tr>
<td align="center" style="width: 400px;">
<a href="https://github.com/longtai-cn">
<img src="https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220501162931154.png" style="width: 400px;"><br>
<sub>配置变更</sub>
</a><br>
</td>
<td align="center" style="width: 400px;">
<a href="https://github.com/longtai-cn">
<img src="https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220501162751367.png" style="width: 400px;"><br>
<sub>报警通知</sub>
</a><br>
</td>
</tr>
</table>
- 全局管控:管理应用线程池实例;
- 动态变更:应用运行时动态变更线程池参数,包括不限于:核心、最大线程数、阻塞队列容量、拒绝策略等;
- 通知报警:内置四种报警通知策略,线程池活跃度、容量水位、拒绝策略以及任务执行时间超长;
- 运行监控:实时查看线程池运行时数据,最近半小时线程池运行数据图表展示;
- 功能扩展:支持线程池任务传递上下文;项目关闭时,支持等待线程池在指定时间内完成任务;
- 容器管理Tomcat、Jetty、Undertow 容器线程池运行时查看和线程数变更;
- 中间件适配Apache RocketMQ 消费线程池运行时数据查看和线程数变更。
## 快速开始
[运行 Hippo-4J 自带 Demo 参考文档](https://hippo4j.cn/pages/793dcb/)
对于本地演示目的,请参阅 [Quick start](https://hippo4j.cn/pages/793dcb/)
[在线体验地址](http://console.hippo4j.cn/index.html) 用户名密码hippo4j / hippo4j
演示环境:
- http://console.hippo4j.cn/index.html
- 用户/密码hippo4j/hippo4j
## 联系我
对于这个项目,是否有什么不一样看法,同 [作者](https://hippo4j.cn/pages/dd137d/) 或者创建 [Issues](https://github.com/longtai-cn/hippo4j/issues) 沟通。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/64E583A0-B1DD-49A3-9AEC-8D246E9D5C12-mini.png)
## 公众号
如果大家想要实时关注 Hippo-4J 最新动态以及干货分享的话,可以关注我的公众号。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/43_65f6020ed111b6bb3808ec338576bd6b.png)
## Stars 趋势
图片加载不出来,访问 [国内站点](https://hippo4j.cn/pages/dd137d/)
[![Stargazers over time](https://starchart.cc/longtai-cn/hippo4j.svg)](https://starchart.cc/longtai-cn/hippo4j)
![image](https://user-images.githubusercontent.com/77398366/169202380-6c068acd-700a-41fa-8823-e01c92bb5e88.png)
## 友情链接
- [**JavaGuide**](https://github.com/Snailclimb/JavaGuide)「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide
- [**Guide-Rpc-Framework**](https://github.com/Snailclimb/guide-rpc-framework)A custom RPC framework implemented by Netty+Kyro+Zookeeper.一款基于 Netty+Kyro+Zookeeper 实现的自定义 RPC 框架-附详细实现过程和相关教程
- [**toBeBetterJavaer**](https://github.com/itwanger/toBeBetterJavaer)Java 程序员进阶之路,据说每一个优秀的 Java 程序员都喜欢她,风趣幽默、通俗易懂。内容包括 Java 基础、Java 并发编程、Java 虚拟机、Java 企业级开发、Java 面试等核心知识点
- [**Austin**](https://github.com/ZhongFuCheng3y/austin):消息推送平台📝 推送下发【邮件】【短信】【微信服务号】【微信小程序】等消息类型。所使用的技术栈包括SpringBoot、SpringDataJPA、MySQL、Docker、docker-compose、Kafka、Redis、Apollo、prometheus、Grafana、GrayLog、Flink、Xxl-job、Echarts等等
- [**JavaGuide**](https://github.com/Snailclimb/JavaGuide):一份涵盖大部分 Java 程序员所需要掌握的核心知识。
- [**Guide-Rpc-Framework**](https://github.com/Snailclimb/guide-rpc-framework):一款基于 Netty+Kyro+Zookeeper 实现的自定义 RPC 框架。
- [**toBeBetterJavaer**](https://github.com/itwanger/toBeBetterJavaer)一份通俗易懂、风趣幽默的Java学习指南内容涵盖Java基础、Java并发编程等核心知识点。
- [**Austin**](https://github.com/ZhongFuCheng3y/austin):消息推送平台,推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型。
## 鸣谢

Loading…
Cancel
Save