diff --git a/docs/docs/community/contributor.md b/docs/docs/community/contributor.md index 5a6fb5b4..7e7d9a4a 100644 --- a/docs/docs/community/contributor.md +++ b/docs/docs/community/contributor.md @@ -4,12 +4,11 @@ sidebar_position: 1 # 开发者指南 - 为了让您的 id 显示在 contributor 列表中,别忘了以下设置: ```shell git config --global user.name "username" -git config --global user.email "github账号邮箱" +git config --global user.email "GitHub 账号邮箱" ``` ## 开发者列表 diff --git a/docs/docs/community/developer.md b/docs/docs/community/developer.md index 3c9c9f45..555e78f8 100644 --- a/docs/docs/community/developer.md +++ b/docs/docs/community/developer.md @@ -4,10 +4,9 @@ sidebar_position: 2 # 核心开发者 - - +

马称

马称

陆宽
diff --git a/docs/docs/community/sponsor.md b/docs/docs/community/sponsor.md index 79e4ce4d..5a7e851d 100644 --- a/docs/docs/community/sponsor.md +++ b/docs/docs/community/sponsor.md @@ -4,10 +4,9 @@ sidebar_position: 4 # 支持开源 -如果您正在使用这个项目并感觉良好,或者是想支持我继续开发,您可以通过如下 `任意` 方式支持我: +如果您正在使用这个项目并感觉良好,或者是想支持我继续开发。通过以下二维码 一次性捐款,我多半会买一杯咖啡或茶~ -- GitHub Star 并分享动态线程池框架 [Hippo4J](https://github.com/opengoofy/hippo4j) -- 通过以下二维码 一次性捐款。我多半会买一杯咖啡或茶~ +> [GitHub](https://github.com/opengoofy/hippo4j) 或 [Gitee](https://gitee.com/agentart/hippo4j) Star 才是最大动力~ ![](https://images-machen.oss-cn-beijing.aliyuncs.com/IMG_6719_2.jpg?x-oss-process=image/resize,h_180,w_180) diff --git a/docs/docs/user_docs/getting-started/difference.md b/docs/docs/user_docs/getting-started/difference.md index 669b89b7..8f81e25d 100644 --- a/docs/docs/user_docs/getting-started/difference.md +++ b/docs/docs/user_docs/getting-started/difference.md @@ -8,7 +8,7 @@ sidebar_position: 0 ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20220319154626314.png) -### hippo4j-core +### hippo4j-config **轻量级动态线程池管理**,依赖 Apollo、Nacos、Zookeeper 等三方配置中心(任选其一)完成线程池参数动态变更,支持运行时报警、监控等功能。 @@ -20,20 +20,18 @@ sidebar_position: 0 **部署 hippo4j-server 服务**,通过可视化 Web 界面完成线程池的创建、变更以及查看,不依赖三方中间件。 -相比较 hippo4j-core,功能会更强大,但同时也引入了一定的复杂性。需要部署一个 Java 服务,以及依赖 MySQL 数据库。 +相比较 hippo4j-config,功能会更强大,但同时也引入了一定的复杂性。需要部署一个 Java 服务,以及依赖 MySQL 数据库。 ![](https://images-machen.oss-cn-beijing.aliyuncs.com/1644032018254-min.gif) - - ### 使用总结 -| | hippo4j-core | hippo4j-server | +| | hippo4j-config | hippo4j-server | | ---- | ---------------------------------------------------- | ------------------------------------------------------------ | | 依赖 | Nacos、Apollo、Zookeeper 配置中心(任选其一) | 部署 Hippo-4J Server(内部无依赖中间件) | | 使用 | 配置中心补充线程池相关参数 | Hippo-4J Server Web 控制台添加线程池记录 | | 功能 | 包含基础功能:参数动态化、运行时监控、报警等 | 基础功能之外扩展控制台界面、线程池堆栈查看、线程池运行信息实时查看、历史运行信息查看、线程池配置集群个性化等 | -使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-core 使用即可;如果希望更多的功能,可以选择 hippo4j-server。 +使用建议:根据公司情况选择,如果基本功能可以满足使用,选择 hippo4j-config 使用即可;如果希望更多的功能,可以选择 hippo4j-server。 **两者在进行替换的时候,无需修改业务代码**。 diff --git a/docs/docs/user_docs/getting-started/hippo4j-adapter.md b/docs/docs/user_docs/getting-started/hippo4j-adapter.md index 3608bd9b..9ba07962 100644 --- a/docs/docs/user_docs/getting-started/hippo4j-adapter.md +++ b/docs/docs/user_docs/getting-started/hippo4j-adapter.md @@ -10,6 +10,7 @@ Hippo4J 目前已支持的三方框架线程池列表: - Hystrix - RabbitMQ - RocketMQ +- AlibabaDubbo - RocketMQSpringCloudStream 引入 Hippo4J Server 或 Core 的 Maven Jar 坐标后,还需要引入对应的框架适配 Jar: @@ -19,6 +20,8 @@ Hippo4J 目前已支持的三方框架线程池列表: cn.hippo4j hippo4j-spring-boot-starter-adapter-dubbo + + hippo4j-spring-boot-starter-adapter-alibaba-dubbo hippo4j-spring-boot-starter-adapter-hystrix @@ -27,7 +30,7 @@ Hippo4J 目前已支持的三方框架线程池列表: hippo4j-spring-boot-starter-adapter-rocketmq hippo4j-spring-boot-starter-adapter-spring-cloud-stream-rocketmq - 1.3.1 + 1.4.0 ``` @@ -37,7 +40,7 @@ Hippo4J 目前已支持的三方框架线程池列表: cn.hippo4j hippo4j-spring-boot-starter-adapter-all - 1.3.1 + 1.4.0 ``` diff --git a/docs/docs/user_docs/getting-started/hippo4j-core-monitor.md b/docs/docs/user_docs/getting-started/hippo4j-core-monitor.md index 72e356a7..29e67c56 100644 --- a/docs/docs/user_docs/getting-started/hippo4j-core-monitor.md +++ b/docs/docs/user_docs/getting-started/hippo4j-core-monitor.md @@ -2,9 +2,9 @@ sidebar_position: 2 --- -# hippo4j core 线程池监控 +# hippo4j config 线程池监控 -已完成 hippo4j-core 的 [接入工作](/docs/user_docs/getting-started/hippo4j-core-start) 。 +已完成 hippo4j-config 的 [接入工作](/docs/user_docs/getting-started/hippo4j-core-start) 。 ## 安装 Grafana + Prometheus diff --git a/docs/docs/user_docs/getting-started/hippo4j-core-start.md b/docs/docs/user_docs/getting-started/hippo4j-core-start.md index a634f543..5ae1c30e 100644 --- a/docs/docs/user_docs/getting-started/hippo4j-core-start.md +++ b/docs/docs/user_docs/getting-started/hippo4j-core-start.md @@ -2,7 +2,7 @@ sidebar_position: 1 --- -# hippo4j core 接入 +# hippo4j config 接入 Nacos、Apollo、Zookeeper 配置中心任选其一。 @@ -12,7 +12,7 @@ Nacos、Apollo、Zookeeper 配置中心任选其一。 cn.hippo4j hippo4j-config-spring-boot-starter - 1.3.1 + 1.4.0 ``` @@ -42,54 +42,79 @@ spring: dynamic: thread-pool: - enable: true # 是否开启动态线程池 - banner: true # 是否打印 banner - collect: true # 是否开启线程池数据采集,对接 Prometheus - notify-platforms: # 通知报警平台,⚠️ 请替换为自己创建的群机器人 - - platform: 'WECHAT' # 企业微信 - token: 1d307bfa-815f-4662-a2e5-99415e947bb8 - - platform: 'DING' # 钉钉 - token: 56417ebba6a27ca352f0de77a2ae9da66d01f39610b5ee8a6033c60ef9071c55 - secret: SEC40943de20b51e993b47e9a55490a168f1c9e00bdb4f0fb15b1d9e4b58f8b05f3 # 加签 - - platform: 'LARK' # 飞书 - token: 2cbf2808-3839-4c26-a04d-fd201dd51f9e - nacos: # nacos apollo 任选其一 + # 是否开启动态线程池 + enable: true + # 是否打印 banner + banner: true + # 是否开启线程池数据采集,对接 Prometheus、ES、Log 等 + collect: true + # 检查线程池状态,是否达到报警条件,单位毫秒 + check-state-interval: 3000 + # 通知报警平台,请替换为自己创建的群机器人 + notify-platforms: + - platform: 'WECHAT' + token: xxx + - platform: 'DING' + token: xxx + secret: xxx # 加签专属 + - platform: 'LARK' + token: xxx + # nacos apollo、zookeeper 任选其一 + nacos: data-id: xxx group: xxx apollo: namespace: xxxx - config-file-type: yml # 配置中心文件格式 - # tomcat: - # jetty: - undertow: # 三种容器线程池,任选其一 + # 配置中心文件格式 + config-file-type: yml + # tomcat、undertow、jetty 三种容器线程池,任选其一 + undertow: core-pool-size: 100 maximum-pool-size: 200 keep-alive-time: 1000 - # 全局通知配置 - alarm: true # 是否报警 - check-state-interval: 3000 # 检查线程池状态,是否达到报警条件,单位毫秒 - active-alarm: 80 # 活跃度报警阈值;假设线程池最大线程数 10,当线程数达到 8 发起报警 - capacity-alarm: 80 # 容量报警阈值;假设阻塞队列容量 100,当容量达到 80 发起报警 - alarm-interval: 8 # 报警间隔,同一线程池下同一报警纬度,在 interval 时间内只会报警一次,单位秒 - receive: xxx # 企业微信填写用户 ID(填写其它将无法达到 @ 效果)、钉钉填手机号、飞书填 ou_ 开头唯一 ID - # 线程池配置 + # 全局通知配置-是否报警 + alarm: true + # 活跃度报警阈值;假设线程池最大线程数 10,当线程数达到 8 发起报警 + active-alarm: 80 + # 容量报警阈值;假设阻塞队列容量 100,当容量达到 80 发起报警 + capacity-alarm: 80 + # 报警间隔,同一线程池下同一报警纬度,在 interval 时间内只会报警一次,单位秒 + alarm-interval: 8 + # 企业微信填写用户 ID(填写其它将无法达到 @ 效果)、钉钉填手机号、飞书填 ou_ 开头唯一 ID + receive: xxx + # 动态线程池列表 executors: - - thread-pool-id: 'message-consume' # 线程池标识 - core-pool-size: 1 # 核心线程数 - maximum-pool-size: 1 # 最大线程数 - queue-capacity: 1 # 阻塞队列大小 - execute-time-out: 1000 # 执行超时时间,超过此时间发起报警 - blocking-queue: 'LinkedBlockingQueue' # 阻塞队列名称,参考 QueueTypeEnum,支持 SPI - rejected-handler: 'AbortPolicy' # 拒绝策略名称,参考 RejectedPolicies,支持 SPI - keep-alive-time: 1024 # 线程存活时间,单位秒 - allow-core-thread-time-out: true # 是否允许核心线程超时 - thread-name-prefix: 'message-consume' # 线程名称前缀 - notify: # 通知配置,线程池中通知配置如果存在,则会覆盖全局通知配置 - is-alarm: true # 是否报警 - active-alarm: 80 # 活跃度报警阈值;假设线程池最大线程数 10,当线程数达到 8 发起报警 - capacity-alarm: 80 # 容量报警阈值;假设阻塞队列容量 100,当容量达到 80 发起报警 - interval: 8 # 报警间隔,同一线程池下同一报警纬度,在 interval 时间内只会报警一次,单位分钟 - receive: xxx # 企业微信填写用户 ID(填写其它将无法达到 @ 效果)、钉钉填手机号、飞书填 ou_ 开头唯一 ID + - thread-pool-id: 'message-consume' + # 核心线程数 + core-pool-size: 1 + # 最大线程数 + maximum-pool-size: 1 + # 阻塞队列名称,参考 BlockingQueueTypeEnum,支持 SPI + blocking-queue: 'LinkedBlockingQueue' + # 阻塞队列大小 + queue-capacity: 1 + # 执行超时时间,超过此时间发起报警,单位毫秒 + execute-time-out: 1000 + # 拒绝策略名称,参考 RejectedPolicyTypeEnum,支持 SPI + rejected-handler: 'AbortPolicy' + # 线程存活时间,单位秒 + keep-alive-time: 1024 + # 是否允许核心线程超时 + allow-core-thread-time-out: true + # 线程工厂名称前缀 + thread-name-prefix: 'message-consume' + # 是否报警 + alarm: true + # 活跃度报警阈值;假设线程池最大线程数 10,当线程数达到 8 发起报警 + active-alarm: 80 + # 容量报警阈值;假设阻塞队列容量 100,当容量达到 80 发起报警 + capacity-alarm: 80 + # 通知配置,线程池中通知配置如果存在,则会覆盖全局通知配置 + notify: + # 报警间隔,同一线程池下同一报警纬度,在 interval 时间内只会报警一次,单位分钟 + interval: 8 + # 企业微信填写用户 ID(填写其它将无法达到 @ 效果)、钉钉填手机号、飞书填 ou_ 开头唯一 ID + receive: xxx - thread-pool-id: 'message-produce' core-pool-size: 1 maximum-pool-size: 1 @@ -100,10 +125,10 @@ spring: keep-alive-time: 1024 allow-core-thread-time-out: true thread-name-prefix: 'message-consume' + alarm: true + active-alarm: 80 + capacity-alarm: 80 notify: - is-alarm: true - active-alarm: 80 - capacity-alarm: 80 interval: 8 receive: xxx ``` diff --git a/docs/docs/user_docs/getting-started/hippo4j-server-start.md b/docs/docs/user_docs/getting-started/hippo4j-server-start.md index 859776b1..b18d679e 100644 --- a/docs/docs/user_docs/getting-started/hippo4j-server-start.md +++ b/docs/docs/user_docs/getting-started/hippo4j-server-start.md @@ -22,7 +22,7 @@ SpringBoot Pom 引入 Hippo4j Starter Jar。 cn.hippo4j hippo4j-spring-boot-starter - 1.3.1 + 1.4.0 ``` diff --git a/docs/docs/user_docs/ops/hippo4j-server-deploy.md b/docs/docs/user_docs/ops/hippo4j-server-deploy.md index a3b16dc9..d605704a 100644 --- a/docs/docs/user_docs/ops/hippo4j-server-deploy.md +++ b/docs/docs/user_docs/ops/hippo4j-server-deploy.md @@ -4,8 +4,7 @@ sidebar_position: 1 # hippo4j server 部署 - -[RELEASE](https://github.com/longtai-cn/hippo4j/releases) 页面下载对应版本并进行解压。 +[RELEASE](https://github.com/opengoofy/hippo4j/releases) 页面下载对应版本并进行解压。 ## 初始化 @@ -15,12 +14,14 @@ sidebar_position: 1 /conf/application.properties ``` -数据库执行 SQL 脚本。 +如果是新运行 Hippo-4J,数据库执行下述 SQL 脚本即可。 ```txt /conf/hippo4j_manager.sql ``` +如果是对已运行 Hippo-4J 升级,请查看 `/conf/sql-upgrade` 目录下,是否有目标版本对应的升级脚本。 + ## 直接运行 Mac Linux 启动执行。 diff --git a/docs/docs/user_docs/other/issue.md b/docs/docs/user_docs/other/issue.md index 90121b14..8e09026e 100644 --- a/docs/docs/user_docs/other/issue.md +++ b/docs/docs/user_docs/other/issue.md @@ -80,9 +80,10 @@ Hippo4J 发布时可能会涉及到两端发布,分别是 Server 和 Starter 重启客户端项目,会重新拉取最新报警推送配置,问题解决。 ## 设置线程池参数优先级问题 -- 当使用`@DynamicThreadPool`进行修饰的方法中和在管理界面设置中同时存在的话,则管理界面设置的优先级最高; -- 如果连接service端失败的话,使用`@DynamicThreadPool`进行修饰设置的优先级最高。 + +- 当使用 `@DynamicThreadPool` 进行修饰的方法中和在管理界面设置中同时存在的话,则管理界面设置的优先级最高; +- 如果连接 server 端失败的话,使用 `@DynamicThreadPool` 进行修饰设置的优先级最高。 ## 线程池实例中修改队列容量参数问题 -在线程池管理中添加时,只有当选择队列类型为`ResizableCapacityLinkedBlockingQueue`时,后续再进行修改容量大小时才会实时的刷新修改成功。 \ No newline at end of file +在线程池管理中添加时,只有当选择队列类型为 `ResizableCapacityLinkedBlockingQueue` 时,后续再进行修改容量大小时才会实时的刷新修改成功。 \ No newline at end of file diff --git a/docs/docs/user_docs/user_guide/framework.md b/docs/docs/user_docs/user_guide/framework.md index 6403dec0..a6b245f4 100644 --- a/docs/docs/user_docs/user_guide/framework.md +++ b/docs/docs/user_docs/user_guide/framework.md @@ -38,15 +38,6 @@ Client 端指的是我们 SpringBoot 应用,通过引入 Hippo4J Starter Jar ![](https://images-machen.oss-cn-beijing.aliyuncs.com/image-20211107122504126.png) - -### 抽象工具(Tools) - -顾名思义就是将某些工具单独抽象出来,并以 Module 的形式进行展现,这样的拆分方式有两点好处:**一是更符合职责分离特性,二是需要用到某块功能**,做到拿来即用。 - - -log-record-tool:基于 [mzt-biz-log](https://github.com/mouzt/mzt-biz-log "mzt-biz-log") 的操作日志变更记录组件。 - - ## 消息通知(Notify) Hippo4J 内置了很多需要通知的事件,比如:线程池参数变更通知、线程池活跃度报警、拒绝策略执行报警以及阻塞队列容量报警等。 diff --git a/docs/docs/user_docs/user_guide/quick-start.md b/docs/docs/user_docs/user_guide/quick-start.md index a4124dc1..9dddd492 100644 --- a/docs/docs/user_docs/user_guide/quick-start.md +++ b/docs/docs/user_docs/user_guide/quick-start.md @@ -15,7 +15,7 @@ Clone Hippo4J [源代码](https://github.com/longtai-cn/hippo4j),导入初始 1. 导入 [Hippo4J 初始化 SQL 语句](https://github.com/longtai-cn/hippo4j/blob/develop/hippo4j-server/conf/hippo4j_manager.sql); 2. 启动 [Hippo4J-Server](https://github.com/longtai-cn/hippo4j/tree/develop/hippo4j-server) 模块下 ServerApplication 应用类; -3. 启动 [Hippo4J-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 Hippo4JServerExampleApplication 应用类。 +3. 启动 [hippo4J-spring-boot-starter-example](https://github.com/opengoofy/hippo4j/tree/develop/hippo4j-example/hippo4j-spring-boot-starter-example) 模块下 Hippo4JServerExampleApplication 应用类。 通过 Server 控制台访问,路径:`http://localhost:6691/index.html#/hippo4j/dynamic/thread-pool/instance`。 @@ -26,7 +26,7 @@ Clone Hippo4J [源代码](https://github.com/longtai-cn/hippo4j),导入初始 修改相关参数, 观察 Hippo4j-Example 控制台日志输出,日志输出包括不限于此信息即为成功。 ```tex -2022-08-13 21:26:25.814 INFO 38972 --- [change.config-5] c.h.s.s.c.ServerThreadPoolDynamicRefresh : Dynamic thread pool change parameter: [message-produce] +2022-08-13 21:26:25.814 INFO 38972 --- [change.config-5] c.h.s.s.c.ServerThreadPoolDynamicRefresh : [message-consume] Dynamic thread pool change parameter. corePoolSize: [5 => 5] maximumPoolSize: [6 => 7] capacity: [10 => 10] @@ -36,6 +36,6 @@ Clone Hippo4J [源代码](https://github.com/longtai-cn/hippo4j),导入初始 allowCoreThreadTimeOut: [false => false] ``` -另外,当 Client 集群部署时,可以修改某一个实例或选择 `全部修改` 按钮,修改所有实例线程池信息。 +另外,当 Client 集群部署时,可以修改某一个实例,或选择 `全部修改` 按钮,修改所有实例线程池信息。 线程池参数动态变更通知,或线程池运行时报警,详情参考 [通知报警](/docs/user_docs/user_guide/alarm.md)。