【SpringBoot构建Hippo4j-Client安装部署教程】

news2025/1/17 3:44:00

在这里插入图片描述

在这里插入图片描述

🚀 线程池管理工具-Hippo4j 🚀

🌲 AI工具、AI绘图、AI专栏 🍀
🌲 如果你想学到最前沿、最火爆的技术,赶快加入吧✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 线程池管理工具-Hippo4j 🚀

🍔 目录

  • 👑 SpringBoot构建Hippo4j-Client安装部署教程
    • 🥦 SpringBoot构建Hippo4j-Client(无中间件依赖)
      • 🌰 创建SpringBoot工程
      • 🌰 导入Hippo4j的client依赖
      • 🌰 启动类添加@EnableDynamicThreadPool注解
      • 🌰 编写配置文件
      • 🌰 配置线程池信息
      • 🌰 在Hippo4j的图形化界面上构建租户
      • 🌰 在Hippo4j的图形化界面上构建项目
      • 🌰 编写一个请求测试接口 & 启动项目
      • 🌰 访问测试 - 动态线程池 - 线程池管理
      • 🌰 访问测试 - 动态线程池 - 线程池实例
    • 🥦 构建Hippo4j-Client(依赖配置中心)
    • 💬 共勉

👑 SpringBoot构建Hippo4j-Client安装部署教程

🥦 SpringBoot构建Hippo4j-Client(无中间件依赖)

🌰 创建SpringBoot工程

在这里插入图片描述

🌰 导入Hippo4j的client依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>cn.hippo4j</groupId>
        <artifactId>hippo4j-spring-boot-starter</artifactId>
        <version>1.5.0</version>
    </dependency>
</dependencies>

🌰 启动类添加@EnableDynamicThreadPool注解

@EnableDynamicThreadPool

在这里插入图片描述

🌰 编写配置文件

spring:
  application:
    name: hippo4j-client
  dynamic:
    thread-pool:
      server-addr: 192.168.10.131:6691 # 你的服务器ip地址
      username: admin
      password: 123456
      namespace: ljw   # 租户名称
      item-id: ${spring.application.name}   # 项目名称,需要与服务名称保持一致 

在这里插入图片描述

🌰 配置线程池信息

@Configuration
public class ThreadPoolConfig {

    /**
     * 通过hippo4j的线程池ThreadPoolBuilder去构建
     * 同时交给Spring容器进行管理
     * @return
     */
    @Bean
    @DynamicThreadPool
    public ThreadPoolExecutor testThreadPool() {

        ThreadPoolExecutor testThreadPool = ThreadPoolBuilder.builder()
                .corePoolSize(10)
                .maximumPoolSize(10)
                .keepAliveTime(10)
                .timeUnit(TimeUnit.SECONDS)
                .workQueue(BlockingQueueTypeEnum.RESIZABLE_LINKED_BLOCKING_QUEUE)
                .threadFactory("threadPoolBuilder_builder_test")
                .rejected(new ThreadPoolExecutor.AbortPolicy())
                .threadPoolId("threadPoolBuilder_builder_test")
                .dynamicPool()
                .build();
        return testThreadPool;
    }
}

🌰 在Hippo4j的图形化界面上构建租户

在这里插入图片描述

🌰 在Hippo4j的图形化界面上构建项目

在这里插入图片描述

🌰 编写一个请求测试接口 & 启动项目

@RestController
public class TestController {

    @Autowired
    private ThreadPoolExecutor testThreadPool;

    @GetMapping("/test")
    public String test(){
        testThreadPool.execute(() -> System.out.println(Thread.currentThread().getName()));
        return "success";
    }
}

启动项目

在这里插入图片描述

🌰 访问测试 - 动态线程池 - 线程池管理

线程池管理: 将新注册上来的Hippo4j-Client中的线程池信息读取并且保存到数据库中,如果后续出现同样线程池标识的,还是按照当前数据库保存的配置信息执行,无法动态修改。

在这里插入图片描述
控制台更改相关信息
在这里插入图片描述
数据库查到信息的修改
在这里插入图片描述

访问测试,还是最开始设置的最大线程个数。
在这里插入图片描述

🌰 访问测试 - 动态线程池 - 线程池实例

线程池实例: 可以动态修改线程池配置信息的功能。

选择动态线程池 - 线程池实例,选择项目、用户相关的信息

在这里插入图片描述

修改最大的线程个数,看能否动态修改。

在这里插入图片描述

控制台信息变更
在这里插入图片描述

无论怎样,我们还是要测试一下,之前设置的最大线程数是10个,我们现在更新为了5个,重启测试。
在这里插入图片描述

🥦 构建Hippo4j-Client(依赖配置中心)

依赖配置中心的方式和上面玩的无中间件依赖是两个不同的方式。

最本质的区别在于:

  • 无中间件依赖,这种方式只需要安装部署Hippo4j-Server即可,功能相对依赖配置中心的更丰富。
  • 依赖配置中心方式,可以不安装Hippo4j-Server,只需要在项目中导入好依赖,就可以实现线程池的动态配置刷新效果。 如果需要实现监控界面报表等内容,需要接入Prometheus和Grafana,成本也不低。
    image.png

💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp和uview组件实现下拉触底刷新列表

下面是一个在UniApp中使用uView组件实现下拉触底刷新列表的示例&#xff0c;并使用Axios来请求分页数据列表&#xff1a; 首先&#xff0c;确保你已经在UniApp项目中添加了uView组件库。你可以在项目根目录执行以下命令安装它们&#xff1a; npm install uview-ui或者使用 Hb…

一文速览大语言模型在分子领域中的探索

随着 ChatGPT 的快速崛起&#xff0c;大型语言模型&#xff08;LLM&#xff09;已经在人类语言建模领域展示出了其非凡的能力。无论是证明数学公式、编写代码&#xff0c;还是以不同的风格创作诗歌&#xff0c;LLM 都能胜任。然而&#xff0c;尽管 LLM 在人类语言的掌握上已达到…

1、网络基础

网络发展背景、IP、端口、网络通信协议&#xff0c;TCP/IP五层模型、字节序 一、网络发展背景 局域网&#xff1a;网络覆盖在1000m以内的网络 城域网&#xff1a;网络覆盖在20km以内的网络 广域网&#xff1a;网络覆盖在20km以上的网络 因特网、互联网&#xff1a;更大的国…

SSH跳转远程目标服务器的高阶使用

在日常开发和运维的过程中&#xff0c;我一般是使用Xshell的工具对linux服务器的相关操作。我说一下我写这篇文章的背景&#xff1a;甲方因为安全需要&#xff0c;给了一台可以通过vpn访问的跳板机&#xff0c;通过这台跳板机去操作另外的十多台应用服务器&#xff0c;那么肯定…

MySQL 8目录结构与源码

目录 一、主要目录结构 二、获取MySQL 源代码 一、主要目录结构 MySQL的主要目录结构说明bin目录所有MySQL的可执行文件。如&#xff1a;mysql.exedata目录系统数据库所在的目录my.ini文件MySQL的主要配置文件D:\MySQL\Data用户创建的数据库所在的目录 二、获取MySQL 源代码 …

【OpenCV • c++】图像几何变换 | 图像平移

&#x1f680; 个人简介&#xff1a;CSDN「博客新星」TOP 10 &#xff0c; C/C 领域新星创作者&#x1f49f; 作 者&#xff1a;锡兰_CC ❣️&#x1f4dd; 专 栏&#xff1a;【OpenCV • c】计算机视觉&#x1f308; 若有帮助&#xff0c;还请关注➕点赞➕收藏&#xff…

代码随想录算法训练营day3 | 203. 移除链表元素,707. 设计链表,206. 反转链表

目录 203. 移除链表元素 707. 设计链表 206. 反转链表 203. 移除链表元素 难度&#xff1a;easy 思路&#xff1a; 代码&#xff1a; // 使用虚拟头结点 class Solution {public ListNode removeElements(ListNode head, int val) {if (head null) {return head;}// 虚拟…

Waves 14 Complete对Mac和Windows系统的最低要求

Waves 14 Complete是一款功能齐全的音频编辑软件&#xff0c;适用于音乐制作、音频工程和声音设计等领域。它提供了一系列强大的工具和效果&#xff0c;帮助用户在音频处理过程中实现专业水平的效果和混音。 Waves 14 Complete包含了多个实用的插件&#xff0c;如均衡器、压缩…

垃圾收集器CMS-JVM(十一)

Jvm类的创建过程包括类的加载&#xff0c;类的验证&#xff0c;准备&#xff0c;分析&#xff0c;初始化。 验证是不是.class文件。 准备过程则是先赋值初始化的值&#xff0c;并不是直接赋值原始值。 分析比较复杂&#xff0c;会有静态链接处理和动态链接处理。 最后就是类…

亚马逊云科技,加速生成式AI的落地

编辑&#xff1a;阿冒 设计&#xff1a;沐由 “展望今天的世界&#xff0c;在机遇之外&#xff0c;更多事后我们看到的是前所未有的巨大挑战。事实证明&#xff0c;惟有通过创新、专注创新&#xff0c;方能挖掘和发现更多的增长机会。” 在2023亚马逊云科技中国峰会的第二天&am…

【笔记】oracle线上生产数据库使用exp的方式更新到本地

笔记来源 今天的任务是&#xff1a;将线上老的数据库里的数据同步到本地现有的二期数据库中来&#xff0c;即二期项目需要线上数据进行最后测试&#xff0c;于是就有了今天这篇&#xff0c;线上生产数据库更新到本地数据库的笔记。 由于数据量较大&#xff0c;我尝试过将线上…

建表与数据准备

自己新建数据库: create table Student(sid varchar(10),sname varchar(10),sage datetime,ssex nvarchar(10));insert into Student values(01 , 赵雷 , 1990-01-01 , 男); insert into Student values(02 , 钱电 , 1990-12-21 , 男); insert into Student values(03 , 孙风 ,…

原生微信小程序手把手创建发布评论效果

1.静态设计 1.1标题 1.1.1 wxml文件 <!-- 标题 --><view class"title">励志语句</view> 1.1.2 wcss文件 .title{font-size: 50rpx;text-align: center;/* 上左右下 */padding: 60rpx 0 30rpx; } 1.1.3显示 1.2方块卡片 1.2.1 wxml文件 <…

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

python数据处理方法——pkl格式文件

目录 1.pkl文件格式简介&#xff1a; 1.1 什么是 pkl 文件&#xff1f; 1.2 pkl文件和pmml文件的简单区别 1.3 pkl 文件的优点 1.4 使用场景 2.使用 Python 操作 pkl 文件 2.1 对象序列化为 pkl 文件&#xff08;将数据保存为pkl文件&#xff09; 2.2 从 pkl 文件中反…

JS逆向系列之猿人学爬虫第18题-jsvmp - 洞察先机

文章目录 目标网址加密参数分析Python 实现往期逆向文章推荐目标网址 https://match.yuanrenxue.cn/match/18题目标着难度是困难级别,主要还是vmp保护的JS代码调试困难,理清逻辑就会变得简单了 加密参数分析 请求第一页时没有加密参数,从第二页开始,url会携带t和v两个参数…

依次查找数组中指定字符的索引值从左侧开始查找和从右侧开始查找numpy.char.find();numpy.char.rfind()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 依次查找数组中指定字符的索引值 从左侧开始查找和从右侧开始查找 numpy.char.find()&#xff1b;numpy.char.rfind() [太阳]选择题 下列代码最后输出的结果是&#xff1f; import numpy as …

python 运行前端

到html目录下执行&#xff1a;python -m http.server 8080 &#xff08;看你的python版本python or python3 &#xff1f;&#xff09;

机器学习实践(2.2)LightGBM回归任务

前言 LightGBM也属于Boosting集成学习模型(还有前面文章的XGBoost)&#xff0c;LightGBM和XGBoost同为机器学习的集大成者。相比越来越流行的深度神经网络&#xff0c;LightGBM和XGBoost能更好的处理表格数据&#xff0c;并具有更强的可解释性&#xff0c;还具有易于调参、输入…

青岛大学_王卓老师【数据结构与算法】Week05_10_顺序栈的操作3_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…