🚀 线程池管理工具-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,成本也不低。
💬 共勉
最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉! |