Replace Hipo-4j or Hippo4J with Hippo4j in the docs folder in the root directory (#1078)

pull/1079/head
chenhj 3 years ago committed by GitHub
parent 68a635b4ac
commit 21ac63c2db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -7,7 +7,7 @@ tags: [hippo4j, release, 1.3.0]
大家好,我是 **小马哥**。 大家好,我是 **小马哥**。
Hippo-4J 距离上一个版本 1.2.1 已经过去一个月的时间。在此期间,由 **8 位贡献者** 提交了 **170+ commits**,正式发布 **1.3.0** 版本。 Hippo4j 距离上一个版本 1.2.1 已经过去一个月的时间。在此期间,由 **8 位贡献者** 提交了 **170+ commits**,正式发布 **1.3.0** 版本。
注:这是一个 **兼容历史版本** 的重大升级。 注:这是一个 **兼容历史版本** 的重大升级。
@ -41,13 +41,13 @@ Hippo-4J 距离上一个版本 1.2.1 已经过去一个月的时间。在此期
## 三方框架线程池适配 ## 三方框架线程池适配
Hippo-4J 1.3.0 最大的功能发布就是开发出了 **适配三方框架的基础框架**。 Hippo4j 1.3.0 最大的功能发布就是开发出了 **适配三方框架的基础框架**。
目前已完成 **Dubbo、RabbitMQ、RocketMQ、RocketMQSpringCloudStream** 的线程池适配,后续还会接入 **Kafka、Hystrix** 等框架或中间件的线程池适配。 目前已完成 **Dubbo、RabbitMQ、RocketMQ、RocketMQSpringCloudStream** 的线程池适配,后续还会接入 **Kafka、Hystrix** 等框架或中间件的线程池适配。
### 引入适配三方框架 Jar 包 ### 引入适配三方框架 Jar 包
引入 Hippo-4J server 或 core 的 maven jar 坐标后,还需要引入对应的框架适配 jar 引入 Hippo4j server 或 core 的 maven jar 坐标后,还需要引入对应的框架适配 jar
```xml ```xml
<dependency> <dependency>
@ -64,7 +64,7 @@ Hippo-4J 1.3.0 最大的功能发布就是开发出了 **适配三方框架的
</dependency> </dependency>
``` ```
如果想觉得引入多个 jar 包繁琐可以仅需引入一个全量包Hippo-4J 框架底层会根据各中间件的条件,判断加载具体线程池适配器。 如果想觉得引入多个 jar 包繁琐可以仅需引入一个全量包Hippo4j 框架底层会根据各中间件的条件,判断加载具体线程池适配器。
```xml ```xml
<dependency> <dependency>
@ -76,7 +76,7 @@ Hippo-4J 1.3.0 最大的功能发布就是开发出了 **适配三方框架的
### HIPPO-4J Server ### HIPPO-4J Server
Hippo-4J server 引入上述适配 jar 包后,即可在 Hippo-4J server 的控制台进行查看及修改三方框架线程池。 Hippo4j server 引入上述适配 jar 包后,即可在 Hippo4j server 的控制台进行查看及修改三方框架线程池。
![图1 线程池适配列表](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png) ![图1 线程池适配列表](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png)
@ -98,7 +98,7 @@ Hippo-4J server 引入上述适配 jar 包后,即可在 Hippo-4J server 的控
### HIPPO-4J Core ### HIPPO-4J Core
Hippo-4J core 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。 Hippo4j core 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。
```yaml ```yaml
spring: spring:
@ -116,30 +116,30 @@ spring:
## Gitee GVP ## Gitee GVP
Hippo-4J 获得了一些宝贵的荣誉,这属于每一位对 Hippo-4J 做出过贡献的成员。 Hippo4j 获得了一些宝贵的荣誉,这属于每一位对 Hippo4j 做出过贡献的成员。
![图3 GVP 证书](https://images-machen.oss-cn-beijing.aliyuncs.com/170607238-7308c9be-1d63-46a6-852c-eef2e4cf7405.jpeg) ![图3 GVP 证书](https://images-machen.oss-cn-beijing.aliyuncs.com/170607238-7308c9be-1d63-46a6-852c-eef2e4cf7405.jpeg)
感谢所有为 Hippo-4J 做出贡献的开发者! 感谢所有为 Hippo4j 做出贡献的开发者!
https://github.com/opengoofy/hippo4j/graphs/contributors https://github.com/opengoofy/hippo4j/graphs/contributors
![图4 Hippo-4J 开发者](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220605151136276.png) ![图4 Hippo4j 开发者](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220605151136276.png)
## 最后总结 ## 最后总结
开源不易,如果各位小伙伴看了 Hippo-4J 框架后有所收获,希望能帮忙在 Github、Gitee 点个 star谢谢。 开源不易,如果各位小伙伴看了 Hippo4j 框架后有所收获,希望能帮忙在 Github、Gitee 点个 star谢谢。
**Github**https://github.com/opengoofy/hippo4j **Github**https://github.com/opengoofy/hippo4j
**Gitee**https://gitee.com/mabaiwancn/hippo4j **Gitee**https://gitee.com/mabaiwancn/hippo4j
目前已有 **10+** 公司在生产环境使用 Hippo-4J如果贵公司使用了 Hippo-4J,请在下方 Issue 登记,谢谢。 目前已有 **10+** 公司在生产环境使用 Hippo4j如果贵公司使用了 Hippo4j,请在下方 Issue 登记,谢谢。
**Issue**https://github.com/opengoofy/hippo4j/issues/13 **Issue**https://github.com/opengoofy/hippo4j/issues/13
登记使用不会对公司有任何影响,仅为了扩大 Hippo-4J 影响力,帮助它能走得更远。 登记使用不会对公司有任何影响,仅为了扩大 Hippo4j 影响力,帮助它能走得更远。

@ -11,7 +11,7 @@ title: 常见问题
- <a href="#更新代码后运行时服务端sql报错">更新代码后运行时服务端SQL报错</a> - <a href="#更新代码后运行时服务端sql报错">更新代码后运行时服务端SQL报错</a>
- <a href="#生产环境如何不启用动态线程池">生产环境如何不启用动态线程池</a> - <a href="#生产环境如何不启用动态线程池">生产环境如何不启用动态线程池</a>
- <a href="#server-端宕机会影响-client-运行么">Server 端宕机会影响 Client 运行么</a> - <a href="#server-端宕机会影响-client-运行么">Server 端宕机会影响 Client 运行么</a>
- <a href="#hippo4j-的发布方式是怎样的-如何选择正确的版本">Hippo4J 的发布方式是怎样的?如何选择正确的版本</a> - <a href="#hippo4j-的发布方式是怎样的-如何选择正确的版本">Hippo4j 的发布方式是怎样的?如何选择正确的版本</a>
- <a href="#群机器人接受不到通知报警">群机器人接受不到通知报警</a> - <a href="#群机器人接受不到通知报警">群机器人接受不到通知报警</a>
- <a href="#设置线程池参数优先级问题">设置线程池参数优先级问题</a> - <a href="#设置线程池参数优先级问题">设置线程池参数优先级问题</a>
- <a href="#线程池实例中修改队列容量参数问题">线程池实例中修改队列容量参数问题</a> - <a href="#线程池实例中修改队列容量参数问题">线程池实例中修改队列容量参数问题</a>

@ -275,7 +275,7 @@ sidebar_position: 5
**Optimize** **Optimize**
- 适配非 Web SpringBoot 项目使用 Hippo4J - 适配非 Web SpringBoot 项目使用 Hippo4j
- 优化报警通知 - 优化报警通知
- 修复在 JDK 小版本中的兼容性问题 - 修复在 JDK 小版本中的兼容性问题
@ -288,7 +288,7 @@ sidebar_position: 5
## 1.1.0 (Mar 13, 2022) ## 1.1.0 (Mar 13, 2022)
Hippo4J 线程池框架 1.1.0 RELEASE 版本,添加了 Hippo4J-Core依赖配置中心的动态线程池. Hippo4j 线程池框架 1.1.0 RELEASE 版本,添加了 Hippo4j-Core依赖配置中心的动态线程池.
**Feature** **Feature**
@ -329,7 +329,7 @@ Hippo4J 线程池框架 1.1.0 RELEASE 版本,添加了 Hippo4J-Core依赖
- ListableBeanFactory#findAnnotationOnBean SpringBoot 低版本适配 - ListableBeanFactory#findAnnotationOnBean SpringBoot 低版本适配
- 优化客户端关闭时调用服务端钩子函数 - 优化客户端关闭时调用服务端钩子函数
- 线程池实例参数弹框添加实例 ID 和线程池状态 - 线程池实例参数弹框添加实例 ID 和线程池状态
- 补充线程池替换 Hippo4J 文档 - 补充线程池替换 Hippo4j 文档
- 1.5.x springboot 引入hippo4j-spring-boot-starter配置项bean初始化失败 - 1.5.x springboot 引入hippo4j-spring-boot-starter配置项bean初始化失败
- 优化线程池参数编辑合理性校验 - 优化线程池参数编辑合理性校验
- BaseInstanceRegistry 读写锁重构 - BaseInstanceRegistry 读写锁重构

@ -3,6 +3,6 @@
"position": 5, "position": 5,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "Hippo4J 留给使用者能够扩展的知识点。" "description": "Hippo4j 留给使用者能够扩展的知识点。"
} }
} }

@ -4,9 +4,9 @@ sidebar_position: 1
# 拒绝策略自定义 # 拒绝策略自定义
Hippo4J 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4J 中完成自定义拒绝策略实现。 Hippo4j 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4j 中完成自定义拒绝策略实现。
## Hippo4J Server 拒绝策略扩展 ## Hippo4j Server 拒绝策略扩展
自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下: 自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下:

@ -99,7 +99,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090 > 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4j Grafana DashBoard JSON 配置。
| 公众号 | 回复关键词 | | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:| |:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
@ -113,7 +113,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。 即可使用炫酷的 Hippo4j 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)

@ -4,7 +4,7 @@ sidebar_position: 6
# 三方框架线程池适配 # 三方框架线程池适配
Hippo4J 目前已支持的三方框架线程池列表: Hippo4j 目前已支持的三方框架线程池列表:
- Dubbo - Dubbo
- Hystrix - Hystrix
@ -14,7 +14,7 @@ Hippo4J 目前已支持的三方框架线程池列表:
- RocketMQSpringCloudStream - RocketMQSpringCloudStream
- RabbitMQSpringCloudStream - RabbitMQSpringCloudStream
引入 Hippo4J Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar 引入 Hippo4j Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar
```xml ```xml
<dependency> <dependency>
@ -47,15 +47,15 @@ Hippo4J 目前已支持的三方框架线程池列表:
</dependency> </dependency>
``` ```
## Hippo4J Server ## Hippo4j Server
Hippo4J Server 仅需要引入上述 Jar 包,即可在 Hippo4J Server 的控制台进行查看及修改三方框架线程池。 Hippo4j Server 仅需要引入上述 Jar 包,即可在 Hippo4j Server 的控制台进行查看及修改三方框架线程池。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png)
## Hippo4J Config ## Hippo4j Config
Hippo4J Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。 Hippo4j Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。
```yaml ```yaml
spring: spring:

@ -109,7 +109,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090 > 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4j Grafana DashBoard JSON 配置。
| 公众号 | 回复关键词 | | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:| |:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
@ -123,7 +123,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。 即可使用炫酷的 Hippo4j 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)

@ -14,7 +14,7 @@ sidebar_position: 1
租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。 租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。
::: :::
## Hippo4J 配置 ## Hippo4j 配置
SpringBoot Pom 引入 Hippo4j Starter Jar。 SpringBoot Pom 引入 Hippo4j Starter Jar。
@ -108,7 +108,7 @@ public class ThreadPoolConfig {
通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。 通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。
:::note :::note
创建线程池时建议填充实际的参数。如果在连接 Hippo4J Server 端失败时,会使用填充配置创建线程池。 创建线程池时建议填充实际的参数。如果在连接 Hippo4j Server 端失败时,会使用填充配置创建线程池。
::: :::
项目中使用上述定义的动态线程池,如下所示: 项目中使用上述定义的动态线程池,如下所示:

@ -20,9 +20,9 @@ sidebar_position: 1
- 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。 - 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
## 什么是 Hippo-4J ## 什么是 Hippo4j
Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。 Hippo4j 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。
提供以下功能支持: 提供以下功能支持:

@ -14,13 +14,13 @@ sidebar_position: 1
/conf/application.properties /conf/application.properties
``` ```
如果是新运行 Hippo-4J,数据库执行下述 SQL 脚本即可。 如果是新运行 Hippo4j,数据库执行下述 SQL 脚本即可。
```txt ```txt
/conf/hippo4j_manager.sql /conf/hippo4j_manager.sql
``` ```
如果是对已运行 Hippo-4J 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。 如果是对已运行 Hippo4j 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。
## 直接运行 ## 直接运行

@ -29,7 +29,7 @@ hippo4j/hippo4j-server
## 镜像构建 ## 镜像构建
如果想要自定义镜像,可以通过以下命令快速构建 Hippo4J Server 如果想要自定义镜像,可以通过以下命令快速构建 Hippo4j Server
方式一: 方式一:

@ -3,6 +3,6 @@
"position": 2, "position": 2,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。" "description": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。"
} }
} }

@ -10,7 +10,7 @@ sidebar_position: 1
因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。 因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。
想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4J**。 想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4j**。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg)
@ -36,15 +36,15 @@ sidebar_position: 1
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
Hippo4J 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。 Hippo4j 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。
## 它有什么特性 ## 它有什么特性
应用系统中线程池并不容易管理。参考美团的设计Hippo4J 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。 应用系统中线程池并不容易管理。参考美团的设计Hippo4j 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。
举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。 举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。
Hippo4J 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。 Hippo4j 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。
- `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等; - `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等;
- `hippo4j-auth`:用户、角色、权限等; - `hippo4j-auth`:用户、角色、权限等;

@ -4,11 +4,11 @@ sidebar_position: 2
# 架构设计 # 架构设计
简单来说Hippo4J 从部署的角度上分为两种角色Server 端和 Client 端。 简单来说Hippo4j 从部署的角度上分为两种角色Server 端和 Client 端。
Server 端是 Hippo4J 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。 Server 端是 Hippo4j 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。
Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar 包负责与 Server 端进行交互。 Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4j Starter Jar 包负责与 Server 端进行交互。
比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。 比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。
@ -38,13 +38,13 @@ Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar
## 消息通知Notify ## 消息通知Notify
Hippo4J 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。 Hippo4j 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。
目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。 目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。
## Hippo4j-Spring-Boot-Starter ## Hippo4j-Spring-Boot-Starter
熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4J 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。 熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4j 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。
## 功能架构 ## 功能架构

@ -12,7 +12,7 @@ sidebar_position: 3
docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server
``` ```
> 如果没有 Docker可以使用源码编译的方式启动 [Hippo4J-Server/Hippo4J-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。 > 如果没有 Docker可以使用源码编译的方式启动 [Hippo4j-Server/Hippo4j-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。
启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。 启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。

@ -7,7 +7,7 @@ tags: [hippo4j, release, 1.3.0]
大家好,我是 **小马哥**。 大家好,我是 **小马哥**。
Hippo-4J 距离上一个版本 1.2.1 已经过去一个月的时间。在此期间,由 **8 位贡献者** 提交了 **170+ commits**,正式发布 **1.3.0** 版本。 Hippo4j 距离上一个版本 1.2.1 已经过去一个月的时间。在此期间,由 **8 位贡献者** 提交了 **170+ commits**,正式发布 **1.3.0** 版本。
注:这是一个 **兼容历史版本** 的重大升级。 注:这是一个 **兼容历史版本** 的重大升级。
@ -41,13 +41,13 @@ Hippo-4J 距离上一个版本 1.2.1 已经过去一个月的时间。在此期
## 三方框架线程池适配 ## 三方框架线程池适配
Hippo-4J 1.3.0 最大的功能发布就是开发出了 **适配三方框架的基础框架**。 Hippo4j 1.3.0 最大的功能发布就是开发出了 **适配三方框架的基础框架**。
目前已完成 **Dubbo、RabbitMQ、RocketMQ、RocketMQSpringCloudStream** 的线程池适配,后续还会接入 **Kafka、Hystrix** 等框架或中间件的线程池适配。 目前已完成 **Dubbo、RabbitMQ、RocketMQ、RocketMQSpringCloudStream** 的线程池适配,后续还会接入 **Kafka、Hystrix** 等框架或中间件的线程池适配。
### 引入适配三方框架 Jar 包 ### 引入适配三方框架 Jar 包
引入 Hippo-4J server 或 core 的 maven jar 坐标后,还需要引入对应的框架适配 jar 引入 Hippo4j server 或 core 的 maven jar 坐标后,还需要引入对应的框架适配 jar
```xml ```xml
<dependency> <dependency>
@ -64,7 +64,7 @@ Hippo-4J 1.3.0 最大的功能发布就是开发出了 **适配三方框架的
</dependency> </dependency>
``` ```
如果想觉得引入多个 jar 包繁琐可以仅需引入一个全量包Hippo-4J 框架底层会根据各中间件的条件,判断加载具体线程池适配器。 如果想觉得引入多个 jar 包繁琐可以仅需引入一个全量包Hippo4j 框架底层会根据各中间件的条件,判断加载具体线程池适配器。
```xml ```xml
<dependency> <dependency>
@ -76,7 +76,7 @@ Hippo-4J 1.3.0 最大的功能发布就是开发出了 **适配三方框架的
### HIPPO-4J Server ### HIPPO-4J Server
Hippo-4J server 引入上述适配 jar 包后,即可在 Hippo-4J server 的控制台进行查看及修改三方框架线程池。 Hippo4j server 引入上述适配 jar 包后,即可在 Hippo4j server 的控制台进行查看及修改三方框架线程池。
![图1 线程池适配列表](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png) ![图1 线程池适配列表](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png)
@ -98,7 +98,7 @@ Hippo-4J server 引入上述适配 jar 包后,即可在 Hippo-4J server 的控
### HIPPO-4J Core ### HIPPO-4J Core
Hippo-4J core 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。 Hippo4j core 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。
```yaml ```yaml
spring: spring:
@ -116,30 +116,30 @@ spring:
## Gitee GVP ## Gitee GVP
Hippo-4J 获得了一些宝贵的荣誉,这属于每一位对 Hippo-4J 做出过贡献的成员。 Hippo4j 获得了一些宝贵的荣誉,这属于每一位对 Hippo4j 做出过贡献的成员。
![图3 GVP 证书](https://images-machen.oss-cn-beijing.aliyuncs.com/170607238-7308c9be-1d63-46a6-852c-eef2e4cf7405.jpeg) ![图3 GVP 证书](https://images-machen.oss-cn-beijing.aliyuncs.com/170607238-7308c9be-1d63-46a6-852c-eef2e4cf7405.jpeg)
感谢所有为 Hippo-4J 做出贡献的开发者! 感谢所有为 Hippo4j 做出贡献的开发者!
https://github.com/opengoofy/hippo4j/graphs/contributors https://github.com/opengoofy/hippo4j/graphs/contributors
![图4 Hippo-4J 开发者](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220605151136276.png) ![图4 Hippo4j 开发者](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220605151136276.png)
## 最后总结 ## 最后总结
开源不易,如果各位小伙伴看了 Hippo-4J 框架后有所收获,希望能帮忙在 Github、Gitee 点个 star谢谢。 开源不易,如果各位小伙伴看了 Hippo4j 框架后有所收获,希望能帮忙在 Github、Gitee 点个 star谢谢。
**Github**https://github.com/opengoofy/hippo4j **Github**https://github.com/opengoofy/hippo4j
**Gitee**https://gitee.com/mabaiwancn/hippo4j **Gitee**https://gitee.com/mabaiwancn/hippo4j
目前已有 **10+** 公司在生产环境使用 Hippo-4J如果贵公司使用了 Hippo-4J,请在下方 Issue 登记,谢谢。 目前已有 **10+** 公司在生产环境使用 Hippo4j如果贵公司使用了 Hippo4j,请在下方 Issue 登记,谢谢。
**Issue**https://github.com/opengoofy/hippo4j/issues/13 **Issue**https://github.com/opengoofy/hippo4j/issues/13
登记使用不会对公司有任何影响,仅为了扩大 Hippo-4J 影响力,帮助它能走得更远。 登记使用不会对公司有任何影响,仅为了扩大 Hippo4j 影响力,帮助它能走得更远。

@ -20,7 +20,7 @@
"description": "The label for category 用户指南 in sidebar tutorialSidebar" "description": "The label for category 用户指南 in sidebar tutorialSidebar"
}, },
"sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": { "sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": {
"message": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。", "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。",
"description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar" "description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar"
}, },
"sidebar.tutorialSidebar.category.快速开始": { "sidebar.tutorialSidebar.category.快速开始": {
@ -44,7 +44,7 @@
"description": "The label for category 开发者手册 in sidebar tutorialSidebar" "description": "The label for category 开发者手册 in sidebar tutorialSidebar"
}, },
"sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": { "sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": {
"message": "Hippo4J 留给使用者能够扩展的知识点。", "message": "Hippo4j 留给使用者能够扩展的知识点。",
"description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar" "description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar"
}, },
"sidebar.tutorialSidebar.category.其它": { "sidebar.tutorialSidebar.category.其它": {
@ -56,7 +56,7 @@
"description": "The label for category 用户指南 in sidebar user_docs" "description": "The label for category 用户指南 in sidebar user_docs"
}, },
"sidebar.user_docs.category.用户指南.link.generated-index.description": { "sidebar.user_docs.category.用户指南.link.generated-index.description": {
"message": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。", "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。",
"description": "The generated-index page description for category 用户指南 in sidebar user_docs" "description": "The generated-index page description for category 用户指南 in sidebar user_docs"
}, },
"sidebar.user_docs.category.快速开始": { "sidebar.user_docs.category.快速开始": {
@ -80,7 +80,7 @@
"description": "The label for category 开发者手册 in sidebar user_docs" "description": "The label for category 开发者手册 in sidebar user_docs"
}, },
"sidebar.user_docs.category.开发者手册.link.generated-index.description": { "sidebar.user_docs.category.开发者手册.link.generated-index.description": {
"message": "Hippo4J 留给使用者能够扩展的知识点。", "message": "Hippo4j 留给使用者能够扩展的知识点。",
"description": "The generated-index page description for category 开发者手册 in sidebar user_docs" "description": "The generated-index page description for category 开发者手册 in sidebar user_docs"
}, },
"sidebar.user_docs.category.其它": { "sidebar.user_docs.category.其它": {

@ -11,7 +11,7 @@ title: 常见问题
- <a href="#更新代码后运行时服务端sql报错">更新代码后运行时服务端SQL报错</a> - <a href="#更新代码后运行时服务端sql报错">更新代码后运行时服务端SQL报错</a>
- <a href="#生产环境如何不启用动态线程池">生产环境如何不启用动态线程池</a> - <a href="#生产环境如何不启用动态线程池">生产环境如何不启用动态线程池</a>
- <a href="#server-端宕机会影响-client-运行么">Server 端宕机会影响 Client 运行么</a> - <a href="#server-端宕机会影响-client-运行么">Server 端宕机会影响 Client 运行么</a>
- <a href="#hippo4j-的发布方式是怎样的-如何选择正确的版本">Hippo4J 的发布方式是怎样的?如何选择正确的版本</a> - <a href="#hippo4j-的发布方式是怎样的-如何选择正确的版本">Hippo4j 的发布方式是怎样的?如何选择正确的版本</a>
- <a href="#群机器人接受不到通知报警">群机器人接受不到通知报警</a> - <a href="#群机器人接受不到通知报警">群机器人接受不到通知报警</a>
- <a href="#设置线程池参数优先级问题">设置线程池参数优先级问题</a> - <a href="#设置线程池参数优先级问题">设置线程池参数优先级问题</a>
- <a href="#线程池实例中修改队列容量参数问题">线程池实例中修改队列容量参数问题</a> - <a href="#线程池实例中修改队列容量参数问题">线程池实例中修改队列容量参数问题</a>

@ -275,7 +275,7 @@ sidebar_position: 5
**Optimize** **Optimize**
- 适配非 Web SpringBoot 项目使用 Hippo4J - 适配非 Web SpringBoot 项目使用 Hippo4j
- 优化报警通知 - 优化报警通知
- 修复在 JDK 小版本中的兼容性问题 - 修复在 JDK 小版本中的兼容性问题
@ -288,7 +288,7 @@ sidebar_position: 5
## 1.1.0 (Mar 13, 2022) ## 1.1.0 (Mar 13, 2022)
Hippo4J 线程池框架 1.1.0 RELEASE 版本,添加了 Hippo4J-Core依赖配置中心的动态线程池. Hippo4j 线程池框架 1.1.0 RELEASE 版本,添加了 Hippo4j-Core依赖配置中心的动态线程池.
**Feature** **Feature**
@ -329,7 +329,7 @@ Hippo4J 线程池框架 1.1.0 RELEASE 版本,添加了 Hippo4J-Core依赖
- ListableBeanFactory#findAnnotationOnBean SpringBoot 低版本适配 - ListableBeanFactory#findAnnotationOnBean SpringBoot 低版本适配
- 优化客户端关闭时调用服务端钩子函数 - 优化客户端关闭时调用服务端钩子函数
- 线程池实例参数弹框添加实例 ID 和线程池状态 - 线程池实例参数弹框添加实例 ID 和线程池状态
- 补充线程池替换 Hippo4J 文档 - 补充线程池替换 Hippo4j 文档
- 1.5.x springboot 引入hippo4j-spring-boot-starter配置项bean初始化失败 - 1.5.x springboot 引入hippo4j-spring-boot-starter配置项bean初始化失败
- 优化线程池参数编辑合理性校验 - 优化线程池参数编辑合理性校验
- BaseInstanceRegistry 读写锁重构 - BaseInstanceRegistry 读写锁重构

@ -20,7 +20,7 @@
"description": "The label for category 用户指南 in sidebar tutorialSidebar" "description": "The label for category 用户指南 in sidebar tutorialSidebar"
}, },
"sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": { "sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": {
"message": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。", "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。",
"description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar" "description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar"
}, },
"sidebar.tutorialSidebar.category.快速开始": { "sidebar.tutorialSidebar.category.快速开始": {
@ -44,7 +44,7 @@
"description": "The label for category 开发者手册 in sidebar tutorialSidebar" "description": "The label for category 开发者手册 in sidebar tutorialSidebar"
}, },
"sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": { "sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": {
"message": "Hippo4J 留给使用者能够扩展的知识点。", "message": "Hippo4j 留给使用者能够扩展的知识点。",
"description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar" "description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar"
}, },
"sidebar.tutorialSidebar.category.其它": { "sidebar.tutorialSidebar.category.其它": {
@ -56,7 +56,7 @@
"description": "The label for category 用户指南 in sidebar user_docs" "description": "The label for category 用户指南 in sidebar user_docs"
}, },
"sidebar.user_docs.category.用户指南.link.generated-index.description": { "sidebar.user_docs.category.用户指南.link.generated-index.description": {
"message": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。", "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。",
"description": "The generated-index page description for category 用户指南 in sidebar user_docs" "description": "The generated-index page description for category 用户指南 in sidebar user_docs"
}, },
"sidebar.user_docs.category.快速开始": { "sidebar.user_docs.category.快速开始": {
@ -80,7 +80,7 @@
"description": "The label for category 开发者手册 in sidebar user_docs" "description": "The label for category 开发者手册 in sidebar user_docs"
}, },
"sidebar.user_docs.category.开发者手册.link.generated-index.description": { "sidebar.user_docs.category.开发者手册.link.generated-index.description": {
"message": "Hippo4J 留给使用者能够扩展的知识点。", "message": "Hippo4j 留给使用者能够扩展的知识点。",
"description": "The generated-index page description for category 开发者手册 in sidebar user_docs" "description": "The generated-index page description for category 开发者手册 in sidebar user_docs"
}, },
"sidebar.user_docs.category.其它": { "sidebar.user_docs.category.其它": {

@ -3,6 +3,6 @@
"position": 5, "position": 5,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "Hippo4J 留给使用者能够扩展的知识点。" "description": "Hippo4j 留给使用者能够扩展的知识点。"
} }
} }

@ -4,9 +4,9 @@ sidebar_position: 1
# 拒绝策略自定义 # 拒绝策略自定义
Hippo4J 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4J 中完成自定义拒绝策略实现。 Hippo4j 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4j 中完成自定义拒绝策略实现。
## Hippo4J Server 拒绝策略扩展 ## Hippo4j Server 拒绝策略扩展
自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下: 自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下:

@ -99,7 +99,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090 > 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4j Grafana DashBoard JSON 配置。
| 公众号 | 回复关键词 | | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:| |:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
@ -113,7 +113,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。 即可使用炫酷的 Hippo4j 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)

@ -4,7 +4,7 @@ sidebar_position: 6
# 三方框架线程池适配 # 三方框架线程池适配
Hippo4J 目前已支持的三方框架线程池列表: Hippo4j 目前已支持的三方框架线程池列表:
- Dubbo - Dubbo
- Hystrix - Hystrix
@ -14,7 +14,7 @@ Hippo4J 目前已支持的三方框架线程池列表:
- RocketMQSpringCloudStream - RocketMQSpringCloudStream
- RabbitMQSpringCloudStream - RabbitMQSpringCloudStream
引入 Hippo4J Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar 引入 Hippo4j Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar
```xml ```xml
<dependency> <dependency>
@ -47,15 +47,15 @@ Hippo4J 目前已支持的三方框架线程池列表:
</dependency> </dependency>
``` ```
## Hippo4J Server ## Hippo4j Server
Hippo4J Server 仅需要引入上述 Jar 包,即可在 Hippo4J Server 的控制台进行查看及修改三方框架线程池。 Hippo4j Server 仅需要引入上述 Jar 包,即可在 Hippo4j Server 的控制台进行查看及修改三方框架线程池。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png)
## Hippo4J Config ## Hippo4j Config
Hippo4J Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。 Hippo4j Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。
```yaml ```yaml
spring: spring:

@ -109,7 +109,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090 > 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4j Grafana DashBoard JSON 配置。
| 公众号 | 回复关键词 | | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:| |:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
@ -123,7 +123,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。 即可使用炫酷的 Hippo4j 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)

@ -14,7 +14,7 @@ sidebar_position: 1
租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。 租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。
::: :::
## Hippo4J 配置 ## Hippo4j 配置
SpringBoot Pom 引入 Hippo4j Starter Jar。 SpringBoot Pom 引入 Hippo4j Starter Jar。
@ -108,7 +108,7 @@ public class ThreadPoolConfig {
通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。 通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。
:::note :::note
创建线程池时建议填充实际的参数。如果在连接 Hippo4J Server 端失败时,会使用填充配置创建线程池。 创建线程池时建议填充实际的参数。如果在连接 Hippo4j Server 端失败时,会使用填充配置创建线程池。
::: :::
项目中使用上述定义的动态线程池,如下所示: 项目中使用上述定义的动态线程池,如下所示:

@ -20,9 +20,9 @@ sidebar_position: 1
- 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。 - 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
## 什么是 Hippo-4J ## 什么是 Hippo4j
Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。 Hippo4j 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。
提供以下功能支持: 提供以下功能支持:

@ -14,13 +14,13 @@ sidebar_position: 1
/conf/application.properties /conf/application.properties
``` ```
如果是新运行 Hippo-4J,数据库执行下述 SQL 脚本即可。 如果是新运行 Hippo4j,数据库执行下述 SQL 脚本即可。
```txt ```txt
/conf/hippo4j_manager.sql /conf/hippo4j_manager.sql
``` ```
如果是对已运行 Hippo-4J 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。 如果是对已运行 Hippo4j 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。
## 直接运行 ## 直接运行

@ -29,7 +29,7 @@ hippo4j/hippo4j-server
## 镜像构建 ## 镜像构建
如果想要自定义镜像,可以通过以下命令快速构建 Hippo4J Server 如果想要自定义镜像,可以通过以下命令快速构建 Hippo4j Server
方式一: 方式一:

@ -3,6 +3,6 @@
"position": 2, "position": 2,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。" "description": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。"
} }
} }

@ -10,7 +10,7 @@ sidebar_position: 1
因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。 因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。
想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4J**。 想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4j**。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg)
@ -36,15 +36,15 @@ sidebar_position: 1
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
Hippo4J 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。 Hippo4j 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。
## 它有什么特性 ## 它有什么特性
应用系统中线程池并不容易管理。参考美团的设计Hippo4J 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。 应用系统中线程池并不容易管理。参考美团的设计Hippo4j 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。
举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。 举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。
Hippo4J 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。 Hippo4j 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。
- `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等; - `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等;
- `hippo4j-auth`:用户、角色、权限等; - `hippo4j-auth`:用户、角色、权限等;

@ -4,11 +4,11 @@ sidebar_position: 2
# 架构设计 # 架构设计
简单来说Hippo4J 从部署的角度上分为两种角色Server 端和 Client 端。 简单来说Hippo4j 从部署的角度上分为两种角色Server 端和 Client 端。
Server 端是 Hippo4J 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。 Server 端是 Hippo4j 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。
Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar 包负责与 Server 端进行交互。 Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4j Starter Jar 包负责与 Server 端进行交互。
比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。 比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。
@ -38,13 +38,13 @@ Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar
## 消息通知Notify ## 消息通知Notify
Hippo4J 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。 Hippo4j 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。
目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。 目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。
## Hippo4j-Spring-Boot-Starter ## Hippo4j-Spring-Boot-Starter
熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4J 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。 熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4j 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。
## 功能架构 ## 功能架构

@ -12,7 +12,7 @@ sidebar_position: 3
docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server
``` ```
> 如果没有 Docker可以使用源码编译的方式启动 [Hippo4J-Server/Hippo4J-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。 > 如果没有 Docker可以使用源码编译的方式启动 [Hippo4j-Server/Hippo4j-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。
启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。 启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。

@ -3,6 +3,6 @@
"position": 5, "position": 5,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "Hippo4J 留给使用者能够扩展的知识点。" "description": "Hippo4j 留给使用者能够扩展的知识点。"
} }
} }

@ -4,9 +4,9 @@ sidebar_position: 1
# 拒绝策略自定义 # 拒绝策略自定义
Hippo4J 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4J 中完成自定义拒绝策略实现。 Hippo4j 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4j 中完成自定义拒绝策略实现。
## Hippo4J Server 拒绝策略扩展 ## Hippo4j Server 拒绝策略扩展
自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下: 自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下:

@ -94,7 +94,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090 > 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4j Grafana DashBoard JSON 配置。
| 公众号 | 回复关键词 | | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:| |:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
@ -108,7 +108,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。 即可使用炫酷的 Hippo4j 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)

@ -4,7 +4,7 @@ sidebar_position: 0
# 运行模式介绍 # 运行模式介绍
1.1.0 版本发布后Hippo-4J 分为两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。 1.1.0 版本发布后Hippo4j 分为两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220319154626314.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220319154626314.png)
@ -28,8 +28,8 @@ sidebar_position: 0
| | hippo4j-config | hippo4j-server | | | hippo4j-config | hippo4j-server |
| ---- | ---------------------------------------------------- | ------------------------------------------------------------ | | ---- | ---------------------------------------------------- | ------------------------------------------------------------ |
| 依赖 | Nacos、Apollo、Zookeeper、ETCD、Polaris 配置中心(任选其一) | 部署 Hippo-4J Server内部无依赖中间件 | | 依赖 | Nacos、Apollo、Zookeeper、ETCD、Polaris 配置中心(任选其一) | 部署 Hippo4j Server内部无依赖中间件 |
| 使用 | 配置中心补充线程池相关参数 | Hippo-4J Server Web 控制台添加线程池记录 | | 使用 | 配置中心补充线程池相关参数 | Hippo4j Server Web 控制台添加线程池记录 |
| 功能 | 包含基础功能:参数动态化、运行时监控、报警等 | 基础功能之外扩展控制台界面、线程池堆栈查看、线程池运行信息实时查看、历史运行信息查看、线程池配置集群个性化等 | | 功能 | 包含基础功能:参数动态化、运行时监控、报警等 | 基础功能之外扩展控制台界面、线程池堆栈查看、线程池运行信息实时查看、历史运行信息查看、线程池配置集群个性化等 |
使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-config 使用即可;如果希望更多的功能,可以选择 hippo4j-server。 使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-config 使用即可;如果希望更多的功能,可以选择 hippo4j-server。

@ -4,7 +4,7 @@ sidebar_position: 6
# 三方框架线程池适配 # 三方框架线程池适配
Hippo4J 目前已支持的三方框架线程池列表: Hippo4j 目前已支持的三方框架线程池列表:
- Dubbo - Dubbo
- Hystrix - Hystrix
@ -14,7 +14,7 @@ Hippo4J 目前已支持的三方框架线程池列表:
- RocketMQSpringCloudStream - RocketMQSpringCloudStream
- RabbitMQSpringCloudStream - RabbitMQSpringCloudStream
引入 Hippo4J Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar 引入 Hippo4j Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar
```xml ```xml
<dependency> <dependency>
@ -47,15 +47,15 @@ Hippo4J 目前已支持的三方框架线程池列表:
</dependency> </dependency>
``` ```
## Hippo4J Server ## Hippo4j Server
Hippo4J Server 仅需要引入上述 Jar 包,即可在 Hippo4J Server 的控制台进行查看及修改三方框架线程池。 Hippo4j Server 仅需要引入上述 Jar 包,即可在 Hippo4j Server 的控制台进行查看及修改三方框架线程池。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png)
## Hippo4J Config ## Hippo4j Config
Hippo4J Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。 Hippo4j Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。
```yaml ```yaml
spring: spring:

@ -14,7 +14,7 @@ sidebar_position: 3
租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。 租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。
::: :::
## Hippo4J 配置 ## Hippo4j 配置
SpringBoot Pom 引入 Hippo4j Starter Jar。 SpringBoot Pom 引入 Hippo4j Starter Jar。
@ -108,7 +108,7 @@ public class ThreadPoolConfig {
通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。 通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。
:::note :::note
创建线程池时建议填充实际的参数。如果在连接 Hippo4J Server 端失败时,会使用填充配置创建线程池。 创建线程池时建议填充实际的参数。如果在连接 Hippo4j Server 端失败时,会使用填充配置创建线程池。
::: :::
项目中使用上述定义的动态线程池,如下所示: 项目中使用上述定义的动态线程池,如下所示:

@ -20,9 +20,9 @@ sidebar_position: 1
- 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。 - 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
## 什么是 Hippo-4J ## 什么是 Hippo4j
Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。 Hippo4j 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。
提供以下功能支持: 提供以下功能支持:

@ -14,13 +14,13 @@ sidebar_position: 1
/conf/application.properties /conf/application.properties
``` ```
如果是新运行 Hippo-4J,数据库执行下述 SQL 脚本即可。 如果是新运行 Hippo4j,数据库执行下述 SQL 脚本即可。
```txt ```txt
/conf/hippo4j_manager.sql /conf/hippo4j_manager.sql
``` ```
如果是对已运行 Hippo-4J 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。 如果是对已运行 Hippo4j 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。
## 直接运行 ## 直接运行

@ -29,7 +29,7 @@ hippo4j/hippo4j-server
## 镜像构建 ## 镜像构建
如果想要自定义镜像,可以通过以下命令快速构建 Hippo4J Server 如果想要自定义镜像,可以通过以下命令快速构建 Hippo4j Server
方式一: 方式一:

@ -3,6 +3,6 @@
"position": 2, "position": 2,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。" "description": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。"
} }
} }

@ -10,7 +10,7 @@ sidebar_position: 1
因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。 因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。
想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4J**。 想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4j**。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg)
@ -36,15 +36,15 @@ sidebar_position: 1
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
Hippo4J 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。 Hippo4j 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。
## 它有什么特性 ## 它有什么特性
应用系统中线程池并不容易管理。参考美团的设计Hippo4J 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。 应用系统中线程池并不容易管理。参考美团的设计Hippo4j 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。
举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。 举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。
Hippo4J 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。 Hippo4j 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。
- `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等; - `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等;
- `hippo4j-auth`:用户、角色、权限等; - `hippo4j-auth`:用户、角色、权限等;

@ -4,11 +4,11 @@ sidebar_position: 2
# 架构设计 # 架构设计
简单来说Hippo4J 从部署的角度上分为两种角色Server 端和 Client 端。 简单来说Hippo4j 从部署的角度上分为两种角色Server 端和 Client 端。
Server 端是 Hippo4J 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。 Server 端是 Hippo4j 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。
Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar 包负责与 Server 端进行交互。 Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4j Starter Jar 包负责与 Server 端进行交互。
比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。 比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。
@ -38,13 +38,13 @@ Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar
## 消息通知Notify ## 消息通知Notify
Hippo4J 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。 Hippo4j 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。
目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。 目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。
## Hippo4j-Spring-Boot-Starter ## Hippo4j-Spring-Boot-Starter
熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4J 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。 熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4j 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。
## 功能架构 ## 功能架构

@ -12,7 +12,7 @@ sidebar_position: 3
docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server
``` ```
> 如果没有 Docker可以使用源码编译的方式启动 [Hippo4J-Server/Hippo4J-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。 > 如果没有 Docker可以使用源码编译的方式启动 [Hippo4j-Server/Hippo4j-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。
启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。 启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。

@ -3,6 +3,6 @@
"position": 5, "position": 5,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "Hippo4J 留给使用者能够扩展的知识点。" "description": "Hippo4j 留给使用者能够扩展的知识点。"
} }
} }

@ -4,9 +4,9 @@ sidebar_position: 1
# 拒绝策略自定义 # 拒绝策略自定义
Hippo4J 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4J 中完成自定义拒绝策略实现。 Hippo4j 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4j 中完成自定义拒绝策略实现。
## Hippo4J Server 拒绝策略扩展 ## Hippo4j Server 拒绝策略扩展
自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下: 自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下:

@ -99,7 +99,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090 > 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4j Grafana DashBoard JSON 配置。
| 公众号 | 回复关键词 | | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:| |:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
@ -113,7 +113,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。 即可使用炫酷的 Hippo4j 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)

@ -4,7 +4,7 @@ sidebar_position: 0
# 运行模式介绍 # 运行模式介绍
1.1.0 版本发布后Hippo-4J 分为两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。 1.1.0 版本发布后Hippo4j 分为两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220319154626314.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220319154626314.png)
@ -28,8 +28,8 @@ sidebar_position: 0
| | hippo4j-config | hippo4j-server | | | hippo4j-config | hippo4j-server |
| ---- | ---------------------------------------------------- | ------------------------------------------------------------ | | ---- | ---------------------------------------------------- | ------------------------------------------------------------ |
| 依赖 | Nacos、Apollo、Zookeeper、ETCD、Polaris 配置中心(任选其一) | 部署 Hippo-4J Server内部无依赖中间件 | | 依赖 | Nacos、Apollo、Zookeeper、ETCD、Polaris 配置中心(任选其一) | 部署 Hippo4j Server内部无依赖中间件 |
| 使用 | 配置中心补充线程池相关参数 | Hippo-4J Server Web 控制台添加线程池记录 | | 使用 | 配置中心补充线程池相关参数 | Hippo4j Server Web 控制台添加线程池记录 |
| 功能 | 包含基础功能:参数动态化、运行时监控、报警等 | 基础功能之外扩展控制台界面、线程池堆栈查看、线程池运行信息实时查看、历史运行信息查看、线程池配置集群个性化等 | | 功能 | 包含基础功能:参数动态化、运行时监控、报警等 | 基础功能之外扩展控制台界面、线程池堆栈查看、线程池运行信息实时查看、历史运行信息查看、线程池配置集群个性化等 |
使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-config 使用即可;如果希望更多的功能,可以选择 hippo4j-server。 使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-config 使用即可;如果希望更多的功能,可以选择 hippo4j-server。

@ -4,7 +4,7 @@ sidebar_position: 6
# 三方框架线程池适配 # 三方框架线程池适配
Hippo4J 目前已支持的三方框架线程池列表: Hippo4j 目前已支持的三方框架线程池列表:
- Dubbo - Dubbo
- Hystrix - Hystrix
@ -14,7 +14,7 @@ Hippo4J 目前已支持的三方框架线程池列表:
- RocketMQSpringCloudStream - RocketMQSpringCloudStream
- RabbitMQSpringCloudStream - RabbitMQSpringCloudStream
引入 Hippo4J Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar 引入 Hippo4j Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar
```xml ```xml
<dependency> <dependency>
@ -47,15 +47,15 @@ Hippo4J 目前已支持的三方框架线程池列表:
</dependency> </dependency>
``` ```
## Hippo4J Server ## Hippo4j Server
Hippo4J Server 仅需要引入上述 Jar 包,即可在 Hippo4J Server 的控制台进行查看及修改三方框架线程池。 Hippo4j Server 仅需要引入上述 Jar 包,即可在 Hippo4j Server 的控制台进行查看及修改三方框架线程池。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png)
## Hippo4J Config ## Hippo4j Config
Hippo4J Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。 Hippo4j Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。
```yaml ```yaml
spring: spring:

@ -109,7 +109,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090 > 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4j Grafana DashBoard JSON 配置。
| 公众号 | 回复关键词 | | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:| |:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
@ -123,7 +123,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。 即可使用炫酷的 Hippo4j 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)

@ -14,7 +14,7 @@ sidebar_position: 1
租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。 租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。
::: :::
## Hippo4J 配置 ## Hippo4j 配置
SpringBoot Pom 引入 Hippo4j Starter Jar。 SpringBoot Pom 引入 Hippo4j Starter Jar。
@ -108,7 +108,7 @@ public class ThreadPoolConfig {
通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。 通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。
:::note :::note
创建线程池时建议填充实际的参数。如果在连接 Hippo4J Server 端失败时,会使用填充配置创建线程池。 创建线程池时建议填充实际的参数。如果在连接 Hippo4j Server 端失败时,会使用填充配置创建线程池。
::: :::
项目中使用上述定义的动态线程池,如下所示: 项目中使用上述定义的动态线程池,如下所示:

@ -20,9 +20,9 @@ sidebar_position: 1
- 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。 - 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
## 什么是 Hippo-4J ## 什么是 Hippo4j
Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。 Hippo4j 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。
提供以下功能支持: 提供以下功能支持:

@ -14,13 +14,13 @@ sidebar_position: 1
/conf/application.properties /conf/application.properties
``` ```
如果是新运行 Hippo-4J,数据库执行下述 SQL 脚本即可。 如果是新运行 Hippo4j,数据库执行下述 SQL 脚本即可。
```txt ```txt
/conf/hippo4j_manager.sql /conf/hippo4j_manager.sql
``` ```
如果是对已运行 Hippo-4J 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。 如果是对已运行 Hippo4j 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。
## 直接运行 ## 直接运行

@ -29,7 +29,7 @@ hippo4j/hippo4j-server
## 镜像构建 ## 镜像构建
如果想要自定义镜像,可以通过以下命令快速构建 Hippo4J Server 如果想要自定义镜像,可以通过以下命令快速构建 Hippo4j Server
方式一: 方式一:

@ -3,6 +3,6 @@
"position": 2, "position": 2,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。" "description": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。"
} }
} }

@ -10,7 +10,7 @@ sidebar_position: 1
因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。 因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。
想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4J**。 想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4j**。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg)
@ -36,15 +36,15 @@ sidebar_position: 1
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
Hippo4J 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。 Hippo4j 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。
## 它有什么特性 ## 它有什么特性
应用系统中线程池并不容易管理。参考美团的设计Hippo4J 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。 应用系统中线程池并不容易管理。参考美团的设计Hippo4j 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。
举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。 举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。
Hippo4J 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。 Hippo4j 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。
- `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等; - `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等;
- `hippo4j-auth`:用户、角色、权限等; - `hippo4j-auth`:用户、角色、权限等;

@ -4,11 +4,11 @@ sidebar_position: 2
# 架构设计 # 架构设计
简单来说Hippo4J 从部署的角度上分为两种角色Server 端和 Client 端。 简单来说Hippo4j 从部署的角度上分为两种角色Server 端和 Client 端。
Server 端是 Hippo4J 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。 Server 端是 Hippo4j 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。
Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar 包负责与 Server 端进行交互。 Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4j Starter Jar 包负责与 Server 端进行交互。
比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。 比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。
@ -38,13 +38,13 @@ Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar
## 消息通知Notify ## 消息通知Notify
Hippo4J 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。 Hippo4j 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。
目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。 目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。
## Hippo4j-Spring-Boot-Starter ## Hippo4j-Spring-Boot-Starter
熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4J 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。 熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4j 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。
## 功能架构 ## 功能架构

@ -12,7 +12,7 @@ sidebar_position: 3
docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server
``` ```
> 如果没有 Docker可以使用源码编译的方式启动 [Hippo4J-Server/Hippo4J-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。 > 如果没有 Docker可以使用源码编译的方式启动 [Hippo4j-Server/Hippo4j-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。
启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。 启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。

@ -3,6 +3,6 @@
"position": 5, "position": 5,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "Hippo4J 留给使用者能够扩展的知识点。" "description": "Hippo4j 留给使用者能够扩展的知识点。"
} }
} }

@ -4,9 +4,9 @@ sidebar_position: 1
# 拒绝策略自定义 # 拒绝策略自定义
Hippo4J 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4J 中完成自定义拒绝策略实现。 Hippo4j 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4j 中完成自定义拒绝策略实现。
## Hippo4J Server 拒绝策略扩展 ## Hippo4j Server 拒绝策略扩展
自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下: 自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下:

@ -94,7 +94,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090 > 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4j Grafana DashBoard JSON 配置。
| 公众号 | 回复关键词 | | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:| |:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
@ -108,7 +108,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。 即可使用炫酷的 Hippo4j 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)

@ -4,7 +4,7 @@ sidebar_position: 0
# 运行模式介绍 # 运行模式介绍
1.1.0 版本发布后Hippo-4J 分为两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。 1.1.0 版本发布后Hippo4j 分为两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220319154626314.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220319154626314.png)
@ -28,8 +28,8 @@ sidebar_position: 0
| | hippo4j-config | hippo4j-server | | | hippo4j-config | hippo4j-server |
| ---- | ---------------------------------------------------- | ------------------------------------------------------------ | | ---- | ---------------------------------------------------- | ------------------------------------------------------------ |
| 依赖 | Nacos、Apollo、Zookeeper、ETCD、Polaris 配置中心(任选其一) | 部署 Hippo-4J Server内部无依赖中间件 | | 依赖 | Nacos、Apollo、Zookeeper、ETCD、Polaris 配置中心(任选其一) | 部署 Hippo4j Server内部无依赖中间件 |
| 使用 | 配置中心补充线程池相关参数 | Hippo-4J Server Web 控制台添加线程池记录 | | 使用 | 配置中心补充线程池相关参数 | Hippo4j Server Web 控制台添加线程池记录 |
| 功能 | 包含基础功能:参数动态化、运行时监控、报警等 | 基础功能之外扩展控制台界面、线程池堆栈查看、线程池运行信息实时查看、历史运行信息查看、线程池配置集群个性化等 | | 功能 | 包含基础功能:参数动态化、运行时监控、报警等 | 基础功能之外扩展控制台界面、线程池堆栈查看、线程池运行信息实时查看、历史运行信息查看、线程池配置集群个性化等 |
使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-config 使用即可;如果希望更多的功能,可以选择 hippo4j-server。 使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-config 使用即可;如果希望更多的功能,可以选择 hippo4j-server。

@ -4,7 +4,7 @@ sidebar_position: 6
# 三方框架线程池适配 # 三方框架线程池适配
Hippo4J 目前已支持的三方框架线程池列表: Hippo4j 目前已支持的三方框架线程池列表:
- Dubbo - Dubbo
- Hystrix - Hystrix
@ -14,7 +14,7 @@ Hippo4J 目前已支持的三方框架线程池列表:
- RocketMQSpringCloudStream - RocketMQSpringCloudStream
- RabbitMQSpringCloudStream - RabbitMQSpringCloudStream
引入 Hippo4J Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar 引入 Hippo4j Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar
```xml ```xml
<dependency> <dependency>
@ -47,15 +47,15 @@ Hippo4J 目前已支持的三方框架线程池列表:
</dependency> </dependency>
``` ```
## Hippo4J Server ## Hippo4j Server
Hippo4J Server 仅需要引入上述 Jar 包,即可在 Hippo4J Server 的控制台进行查看及修改三方框架线程池。 Hippo4j Server 仅需要引入上述 Jar 包,即可在 Hippo4j Server 的控制台进行查看及修改三方框架线程池。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png)
## Hippo4J Config ## Hippo4j Config
Hippo4J Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。 Hippo4j Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。
```yaml ```yaml
spring: spring:

@ -14,7 +14,7 @@ sidebar_position: 3
租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。 租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。
::: :::
## Hippo4J 配置 ## Hippo4j 配置
SpringBoot Pom 引入 Hippo4j Starter Jar。 SpringBoot Pom 引入 Hippo4j Starter Jar。
@ -108,7 +108,7 @@ public class ThreadPoolConfig {
通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。 通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。
:::note :::note
创建线程池时建议填充实际的参数。如果在连接 Hippo4J Server 端失败时,会使用填充配置创建线程池。 创建线程池时建议填充实际的参数。如果在连接 Hippo4j Server 端失败时,会使用填充配置创建线程池。
::: :::
项目中使用上述定义的动态线程池,如下所示: 项目中使用上述定义的动态线程池,如下所示:

@ -22,9 +22,9 @@ sidebar_position: 1
- 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。 - 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
## 什么是 Hippo-4J ## 什么是 Hippo4j
Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。 Hippo4j 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。
提供以下功能支持: 提供以下功能支持:

@ -14,13 +14,13 @@ sidebar_position: 1
/conf/application.properties /conf/application.properties
``` ```
如果是新运行 Hippo-4J,数据库执行下述 SQL 脚本即可。 如果是新运行 Hippo4j,数据库执行下述 SQL 脚本即可。
```txt ```txt
/conf/hippo4j_manager.sql /conf/hippo4j_manager.sql
``` ```
如果是对已运行 Hippo-4J 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。 如果是对已运行 Hippo4j 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。
## 直接运行 ## 直接运行

@ -29,7 +29,7 @@ hippo4j/hippo4j-server
## 镜像构建 ## 镜像构建
如果想要自定义镜像,可以通过以下命令快速构建 Hippo4J Server 如果想要自定义镜像,可以通过以下命令快速构建 Hippo4j Server
方式一: 方式一:

@ -3,6 +3,6 @@
"position": 2, "position": 2,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。" "description": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。"
} }
} }

@ -10,7 +10,7 @@ sidebar_position: 1
因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。 因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。
想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4J**。 想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4j**。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg)
@ -36,15 +36,15 @@ sidebar_position: 1
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
Hippo4J 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。 Hippo4j 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。
## 它有什么特性 ## 它有什么特性
应用系统中线程池并不容易管理。参考美团的设计Hippo4J 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。 应用系统中线程池并不容易管理。参考美团的设计Hippo4j 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。
举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。 举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。
Hippo4J 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。 Hippo4j 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。
- `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等; - `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等;
- `hippo4j-auth`:用户、角色、权限等; - `hippo4j-auth`:用户、角色、权限等;

@ -4,11 +4,11 @@ sidebar_position: 2
# 架构设计 # 架构设计
简单来说Hippo4J 从部署的角度上分为两种角色Server 端和 Client 端。 简单来说Hippo4j 从部署的角度上分为两种角色Server 端和 Client 端。
Server 端是 Hippo4J 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。 Server 端是 Hippo4j 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。
Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar 包负责与 Server 端进行交互。 Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4j Starter Jar 包负责与 Server 端进行交互。
比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。 比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。
@ -38,13 +38,13 @@ Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar
## 消息通知Notify ## 消息通知Notify
Hippo4J 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。 Hippo4j 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。
目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。 目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。
## Hippo4j-Spring-Boot-Starter ## Hippo4j-Spring-Boot-Starter
熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4J 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。 熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4j 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。
## 功能架构 ## 功能架构

@ -12,7 +12,7 @@ sidebar_position: 3
docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server
``` ```
> 如果没有 Docker可以使用源码编译的方式启动 [Hippo4J-Server/Hippo4J-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。 > 如果没有 Docker可以使用源码编译的方式启动 [Hippo4j-Server/Hippo4j-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。
启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。 启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。

@ -3,6 +3,6 @@
"position": 5, "position": 5,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "Hippo4J 留给使用者能够扩展的知识点。" "description": "Hippo4j 留给使用者能够扩展的知识点。"
} }
} }

@ -4,9 +4,9 @@ sidebar_position: 1
# 拒绝策略自定义 # 拒绝策略自定义
Hippo4J 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4J 中完成自定义拒绝策略实现。 Hippo4j 通过 SPI 的方式对拒绝策略进行扩展,可以让用户在 Hippo4j 中完成自定义拒绝策略实现。
## Hippo4J Server 拒绝策略扩展 ## Hippo4j Server 拒绝策略扩展
自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下: 自定义拒绝策略,实现 `CustomRejectedExecutionHandler` 接口,示例如下:

@ -99,7 +99,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090 > 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4j Grafana DashBoard JSON 配置。
| 公众号 | 回复关键词 | | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:| |:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
@ -113,7 +113,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。 即可使用炫酷的 Hippo4j 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)

@ -4,7 +4,7 @@ sidebar_position: 0
# 运行模式介绍 # 运行模式介绍
1.1.0 版本发布后Hippo-4J 分为两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。 1.1.0 版本发布后Hippo4j 分为两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220319154626314.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220319154626314.png)
@ -28,8 +28,8 @@ sidebar_position: 0
| | hippo4j-config | hippo4j-server | | | hippo4j-config | hippo4j-server |
| ---- | ---------------------------------------------------- | ------------------------------------------------------------ | | ---- | ---------------------------------------------------- | ------------------------------------------------------------ |
| 依赖 | Nacos、Apollo、Zookeeper、ETCD、Polaris 配置中心(任选其一) | 部署 Hippo-4J Server内部无依赖中间件 | | 依赖 | Nacos、Apollo、Zookeeper、ETCD、Polaris 配置中心(任选其一) | 部署 Hippo4j Server内部无依赖中间件 |
| 使用 | 配置中心补充线程池相关参数 | Hippo-4J Server Web 控制台添加线程池记录 | | 使用 | 配置中心补充线程池相关参数 | Hippo4j Server Web 控制台添加线程池记录 |
| 功能 | 包含基础功能:参数动态化、运行时监控、报警等 | 基础功能之外扩展控制台界面、线程池堆栈查看、线程池运行信息实时查看、历史运行信息查看、线程池配置集群个性化等 | | 功能 | 包含基础功能:参数动态化、运行时监控、报警等 | 基础功能之外扩展控制台界面、线程池堆栈查看、线程池运行信息实时查看、历史运行信息查看、线程池配置集群个性化等 |
使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-config 使用即可;如果希望更多的功能,可以选择 hippo4j-server。 使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-config 使用即可;如果希望更多的功能,可以选择 hippo4j-server。

@ -4,7 +4,7 @@ sidebar_position: 6
# 三方框架线程池适配 # 三方框架线程池适配
Hippo4J 目前已支持的三方框架线程池列表: Hippo4j 目前已支持的三方框架线程池列表:
- Dubbo - Dubbo
- Hystrix - Hystrix
@ -14,7 +14,7 @@ Hippo4J 目前已支持的三方框架线程池列表:
- RocketMQSpringCloudStream - RocketMQSpringCloudStream
- RabbitMQSpringCloudStream - RabbitMQSpringCloudStream
引入 Hippo4J Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar 引入 Hippo4j Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar
```xml ```xml
<dependency> <dependency>
@ -47,15 +47,15 @@ Hippo4J 目前已支持的三方框架线程池列表:
</dependency> </dependency>
``` ```
## Hippo4J Server ## Hippo4j Server
Hippo4J Server 仅需要引入上述 Jar 包,即可在 Hippo4J Server 的控制台进行查看及修改三方框架线程池。 Hippo4j Server 仅需要引入上述 Jar 包,即可在 Hippo4j Server 的控制台进行查看及修改三方框架线程池。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220531194810047.png)
## Hippo4J Config ## Hippo4j Config
Hippo4J Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。 Hippo4j Config 除了依赖上述适配 Jar 包外,还需要在配置中心添加以下配置项。
```yaml ```yaml
spring: spring:

@ -109,7 +109,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
> 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090 > 如果 Prometheus 为 Docker 方式部署HTTP URL 需要为本地 IP比如http://192.168.1.5:9090
关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4J Grafana DashBoard JSON 配置。 关注公众号 `龙台的技术笔记`,回复:`监控`,获取 Hippo4j Grafana DashBoard JSON 配置。
| 公众号 | 回复关键词 | | 公众号 | 回复关键词 |
|:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:| |:------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|
@ -123,7 +123,7 @@ Grafana 访问 `http://localhost:3000/datasources` 导入 Prometheus 数据源
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225700200.png)
即可使用炫酷的 Hippo-4J 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。 即可使用炫酷的 Hippo4j 动态线程池监控 DashBoard。大家伙儿也可以根据个人喜好进行定制 DashBoard如果觉得有优化点欢迎和我联系贡献。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220912225813972.png)

@ -14,7 +14,7 @@ sidebar_position: 1
租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。 租户、项目、线程池 ID 如果由多个词组成,建议以 - 进行分割。比如message-center。
::: :::
## Hippo4J 配置 ## Hippo4j 配置
SpringBoot Pom 引入 Hippo4j Starter Jar。 SpringBoot Pom 引入 Hippo4j Starter Jar。
@ -108,7 +108,7 @@ public class ThreadPoolConfig {
通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。 通过 ThreadPoolBuilder 构建动态线程池,只有 threadFactory、threadPoolId 为必填项,其它参数会从 hippo4j-server 服务拉取。
:::note :::note
创建线程池时建议填充实际的参数。如果在连接 Hippo4J Server 端失败时,会使用填充配置创建线程池。 创建线程池时建议填充实际的参数。如果在连接 Hippo4j Server 端失败时,会使用填充配置创建线程池。
::: :::
项目中使用上述定义的动态线程池,如下所示: 项目中使用上述定义的动态线程池,如下所示:

@ -20,9 +20,9 @@ sidebar_position: 1
- 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。 - 无法执行优雅关闭,当项目关闭时,大量正在运行的线程池任务被丢弃。
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
## 什么是 Hippo-4J ## 什么是 Hippo4j
Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。 Hippo4j 通过对 JDK 线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。
提供以下功能支持: 提供以下功能支持:

@ -14,13 +14,13 @@ sidebar_position: 1
/conf/application.properties /conf/application.properties
``` ```
如果是新运行 Hippo-4J,数据库执行下述 SQL 脚本即可。 如果是新运行 Hippo4j,数据库执行下述 SQL 脚本即可。
```txt ```txt
/conf/hippo4j_manager.sql /conf/hippo4j_manager.sql
``` ```
如果是对已运行 Hippo-4J 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。 如果是对已运行 Hippo4j 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。
## 直接运行 ## 直接运行

@ -29,7 +29,7 @@ hippo4j/hippo4j-server
## 镜像构建 ## 镜像构建
如果想要自定义镜像,可以通过以下命令快速构建 Hippo4J Server 如果想要自定义镜像,可以通过以下命令快速构建 Hippo4j Server
方式一: 方式一:

@ -3,6 +3,6 @@
"position": 2, "position": 2,
"link": { "link": {
"type": "generated-index", "type": "generated-index",
"description": "帮助想要了解 Hippo4J 的用户快速掌握核心开发理念。" "description": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。"
} }
} }

@ -10,7 +10,7 @@ sidebar_position: 1
因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。 因为对动态线程池比较感兴趣,加上想写一个有意义的项目,所以决定自己来造一个轻量级的轮子。
想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4J**。 想给项目起一个简单易记的名字,类似于 Eureka、Nacos、Redis后和朋友商量决定命名**Hippo4j**。
![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg) ![](https://images-machen.oss-cn-beijing.aliyuncs.com/动态线程池功能架构-1.jpg)
@ -36,15 +36,15 @@ sidebar_position: 1
- 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。 - 线程池运行中,任务执行停止,怀疑发生死锁或执行耗时操作,但是无从下手。
Hippo4J 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。 Hippo4j 很好解决了这些问题,它将业务中所有线程池统一管理,增强原生线程池系列功能。
## 它有什么特性 ## 它有什么特性
应用系统中线程池并不容易管理。参考美团的设计Hippo4J 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。 应用系统中线程池并不容易管理。参考美团的设计Hippo4j 按照租户、项目、线程池的维度划分。再加上系统权限,让不同的开发、管理人员负责自己系统的线程池操作。
举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。 举个例子,小编在一家公司的公共组件团队,团队中负责消息、短链接网关等项目。公共组件是租户,消息或短链接就是项目。
Hippo4J 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。 Hippo4j 除去动态修改线程池,还包含实时查看线程池运行时指标、负载报警、配置日志管理等。
- `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等; - `hippo4j-adapter`:适配对第三方框架中的线程池进行监控,如 Dubbo、RocketMQ、Hystrix 等;
- `hippo4j-auth`:用户、角色、权限等; - `hippo4j-auth`:用户、角色、权限等;

@ -4,11 +4,11 @@ sidebar_position: 2
# 架构设计 # 架构设计
简单来说Hippo4J 从部署的角度上分为两种角色Server 端和 Client 端。 简单来说Hippo4j 从部署的角度上分为两种角色Server 端和 Client 端。
Server 端是 Hippo4J 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。 Server 端是 Hippo4j 项目打包出的 Java 进程,功能包括用户权限、线程池监控以及执行持久化的动作。
Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar 包负责与 Server 端进行交互。 Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4j Starter Jar 包负责与 Server 端进行交互。
比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。 比如拉取 Server 端线程池数据、动态更新线程池配置以及采集上报线程池运行时数据等。
@ -38,13 +38,13 @@ Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar
## 消息通知Notify ## 消息通知Notify
Hippo4J 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。 Hippo4j 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。
目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。 目前 Notify 已经接入了钉钉、企业微信和飞书后续持续集成邮件、短信等通知渠道并且Notify 模块提供了消息事件的 SPI 方案,可以接受三方自定义的推送。
## Hippo4j-Spring-Boot-Starter ## Hippo4j-Spring-Boot-Starter
熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4J 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。 熟悉 SpringBoot 的小伙伴对 Starter 应该不会陌生。Hippo4j 提供以 Starter Jar 包的形式嵌套在应用内,负责与 Server 端完成交互。
## 功能架构 ## 功能架构

@ -12,7 +12,7 @@ sidebar_position: 3
docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server
``` ```
> 如果没有 Docker可以使用源码编译的方式启动 [Hippo4J-Server/Hippo4J-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。 > 如果没有 Docker可以使用源码编译的方式启动 [Hippo4j-Server/Hippo4j-Bootstrap](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server/hippo4j-bootstrap) 模块下 ServerApplication 应用类。
启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。 启动示例项目,[hippo4j-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 ServerExampleApplication 应用类。

Loading…
Cancel
Save