通用池化框架commons-pool2功能拓展
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
FunTester
扫码关注公众号
扫码阅读
手机扫码阅读
摘要
本文介绍了作者在使用Apache Commons Pool2框架时对其功能的拓展应用。文中首先回顾了通用池化框架的基础实践和性能测试。然后,作者提出了一种需求:在硬件资源限制的情况下,如何保证KeyedPool中对象的存活和高频调用的能力,而不是简单地销毁和创建对象。
需求和问题
作者设置了每个KeyedPool的最小空闲对象数为0,最大空闲数为5,总数为10。遇到的问题是,高并发调用导致空闲对象占用了大量系统资源,尽管没有达到最大值。
API的使用和问题
在现有API中,没有提供设置每个KeyedPool的最大空闲时间的功能。作者需要保留每个KeyedPool最大一个空闲对象,但现有API不支持。因此,作者通过获取当前KeyedPool的空闲对象数和所有KeyedPool的状态信息,来实现这一需求。
实现思路
作者提出了三种实现思路:
- 使用定时任务,间隔最大空闲时间扫描所有KeyedPool,并销毁多余的空闲对象。
- 改造对象工厂实现方法,为每个KeyedPool的对象设置标记,并在销毁对象时检查这些标记。
- 为不同的KeyedPool设置优先级,根据优先级允许空闲对象数目的不同,以优化资源分配。
附加信息
最后,作者推荐了其他关于测试和自动化的专题资源,包括原创合集、功能测试、性能测试、Groovy语言、Java、测试社群、测试理论等。
FunTester
FunTester
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
FunTester的其他文章
Kafka测试初探【Go】
上周分享了Kafka性能测试初探的Java版本,有读者留言?
性能测试中获取JVM资源信息
在以往性能测试中,通常施压机的硬件资源不会成为?
JsonPath验证类既Groovy重载操作符实践
在使用JsonPath工具类封装进行接口响应的验证过程中,由于使用原生的JsonPath的API获取到的值默认是object,如果需要转成其他类型需要多些一些代码。
ES Client性能测试初探
最近在工作中协助研发进行了ES优化,效果还是非常??
Selenium 中并行测试的重要性
随着技术的进步,测试解决方案变得更具可扩展性,加速了团队从手动测试到Selenium测试自动化的转型。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线