HIPPO-4J 1.3.0 正式發佈:支持 Dubbo、RibbitMQ、RocketMQ 框架線程池

  • 2022 年 6 月 13 日
  • 筆記

文章首發在公眾號(龍台的技術筆記),之後同步到個人網站:xiaomage.info

Hippo-4J 距離上一個版本 1.2.1 已經過去一個月的時間。在此期間,由 8 位貢獻者 提交了 170+ commits,正式發佈 1.3.0 版本。

註:這是一個 兼容歷史版本 的重大升級。

Github//github.com/mabaiwan/hippo4j

Gitee//gitee.com/mabaiwancn/hippo4j

HIPPO-4J 1.3.0

Feature

  1. 添加 RabbitMQ 線程池監控及動態變更
  2. 添加 RocketMQ 線程池監控及動態變更
  3. 添加 Dubbo 線程池監控及動態變更
  4. 添加 SpringCloud Stream RocketMQ 消費線程池監控及動態變更

Refactor

  1. 重構容器線程池查詢及修改功能
  2. 優化配置中心觸發監聽後,所執行的數據變更邏輯

Optimize

  1. 前端控制台刪除無用組件
  2. 服務端頁面字段未顯示中文
  3. 控制台 UI 優化
  4. 修改線程池實例後實時刷新列表參數
  5. 容器線程池編輯僅限 Admin 權限
  6. SpringBoot Starter 變更包路徑

BUG

  1. 修復 SpringBoot Nacos 動態刷新不生效
  2. 報警配置 alarm=false 不配置通知報警平台和接收人報錯

三方框架線程池適配

Hippo-4J 1.3.0 最大的功能發佈就是開發出了 適配三方框架的基礎框架

目前已完成 Dubbo、RabbitMQ、RocketMQ、RocketMQSpringCloudStream 的線程池適配,後續還會接入 Kafka、Hystrix 等框架或中間件的線程池適配。

引入適配三方框架 Jar 包

引入 Hippo-4J server 或 core 的 maven jar 坐標後,還需要引入對應的框架適配 jar:

<dependency>
    <groupId>cn.hippo4j</groupId>
    <!-- Dubbo -->
    <artifactId>hippo4j-spring-boot-starter-adapter-dubbo</artifactId>
    <!-- RabbitMQ -->
    <artifactId>hippo4j-spring-boot-starter-adapter-rabbitmq</artifactId>
    <!-- RocketMQ -->
    <artifactId>hippo4j-spring-boot-starter-adapter-rocketmq</artifactId>
    <!-- SpringCloud Stream RocketMQ -->
    <artifactId>hippo4j-spring-boot-starter-adapter-spring-cloud-stream-rocketmq</artifactId>
    <version>1.3.0</version>
</dependency>

如果想覺得引入多個 jar 包繁瑣,可以僅需引入一個全量包,Hippo-4J 框架底層會根據各中間件的條件,判斷加載具體線程池適配器。

<dependency>
    <groupId>cn.hippo4j</groupId>
    <artifactId>hippo4j-spring-boot-starter-adapter-all</artifactId>
    <version>1.3.0</version>
</dependency>

HIPPO-4J Server

Hippo-4J server 引入上述適配 jar 包後,即可在 Hippo-4J server 的控制台進行查看及修改三方框架線程池。

圖1 線程池適配列表

點擊編輯即可修改該 Java 應用對應的框架底層線程池。

圖2 修改三方線程池

點擊 全部修改 按鈕可以修改當前組下所有應用實例的線程池配置。

修改成功後,應用控制台打印以下日誌,即為修改成功。

[input] RocketMQ consumption thread pool parameter change. coreSize :: 1 => 10, maximumSize :: 1 => 10

HIPPO-4J Core

Hippo-4J core 除了依賴上述適配 Jar 包外,還需要在配置中心添加以下配置項。

spring:
  dynamic:
    thread-pool:
      # 省略其它配置
      adapter-executors:
        # threadPoolKey 代表線程池標識
        - threadPoolKey: 'input'
          # mark 為三方線程池框架類型,參見文初已支持框架集合
          mark: 'RocketMQSpringCloudStream'
          corePoolSize: 10
          maximumPoolSize: 10

Gitee GVP

Hippo-4J 獲得了一些寶貴的榮譽,這屬於每一位對 Hippo-4J 做出過貢獻的成員。

圖3 GVP 證書

感謝所有為 Hippo-4J 做出貢獻的開發者!

//github.com/mabaiwan/hippo4j/graphs/contributors

圖4 Hippo-4J 開發者

最後總結

開源不易,如果各位小夥伴看了 Hippo-4J 框架後有所收穫,希望能幫忙在 Github、Gitee 點個 star。

目前已有 10+ 公司在生產環境使用 Hippo-4J,如果貴公司使用了 Hippo-4J,請在下方 Issue 登記,謝謝。

Issue//github.com/mabaiwan/hippo4j/issues/13

登記使用不會對公司有任何影響,僅為了擴大 Hippo-4J 影響力,幫助它能走得更遠。