BeeOP 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
BeeOP 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
BeeOP 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 GPL-3.0
开发语言 Java
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 欧德
适用人群 未知
收录时间 2021-01-04

软件简介

BeeOP 小蜜蜂对象池是一款轻量高性能Java对象池。

Maven坐标(Java7)

dependency>
   <groupId>com.github.chris2018998</groupId>
   <artifactId>beeop</artifactId>
   <version>1.0.3</version>
</dependency

性能测试

100万次借用/归还(1000线程 x1000次),获取时间分布,平均时间

对象池名 commons-pool2-2.9.0 BeeOP0.3_Fair BeeOP0.3_Compete
平均时间 2.677456 0.000347 0.000187

测试配置:PC:I5-4210M(2.6赫兹,双核4线程),12G内存 Java:JAVA8_64 Pool:初始10,最大10

日志文件:https://github.com/Chris2018998/BeeOP/blob/main/doc/temp/ObjectPool.log

源码位置:https://github.com/Chris2018998/BeeOP/blob/main/doc/temp/BeeOP_Test.rar


范例

public interface Book {
   public String getName();
   public long getNumber();
}
public class JavaBook implements Book{
   private String name;
   private long number;
   public JavaBook() {
       this("Java核心技术·卷2", System.currentTimeMillis());
   }
   public JavaBook(String name, long number) {
       this.name = name;
       this.number = number;
   }
   public String getName() {
       return name;
   }
   public long getNumber() {
       return number;
   }
   public String toString() {
       return name;
   }

public class JavaBookFactory implements BeeObjectFactory {
    public Object create(Properties prop) throws BeeObjectException {
        return new JavaBook("Java核心技术·卷1", System.currentTimeMillis());
    }
    public void setDefault(Object obj) throws BeeObjectException { }
    public void reset(Object obj) throws BeeObjectException { }
    public void destroy(Object obj) { }
    public boolean isAlive(Object obj, long timeout) {
        return true;
    }
}
public class TestBookPool{
  public static void main(String[]){
      BeeObjectSourceConfig config = new BeeObjectSourceConfig();
      config.setObjectFactory(new JavaBookFactory());
      config.setObjectInterfaces(new Class[]{Book.class});
      BeeObjectSource obs = new BeeObjectSource(config);
      
      BeeObjectHandle handle = null;
      try {
           handle = obs.getObject();
           Object v=handle.call("getName");
           System.out.println("Book name:"+v);
       } catch (BeeObjectException e) {
       } finally {
           if (handle != null)
               handle.close();
       }
    }
}

功能支持

1:对象借用超时

2:对象借用支持公平与竞争模式

3:支持对象安全关闭

4:断网对象池自动恢复

5:闲置超时和持有超时处理

6:若对象发生异常,池自动增补

7:对象回收时重置

8:对象池重置

9:支持JMX


配置项说明

配置项 描述 备注
poolName 池名 如果未赋值则会自动产生一个
fairMode 是否公平模式 默认false,竞争模式
initialSize 池初始创建对象数 默认为0
maxActive 池最大创建对象数 默认为10个
borrowSemaphoreSize 对象借线程最大并行数 默认取最大对象数/2与cpu核心数的最小值
maxWait 对象借用等待最大时间(毫秒) 默认8秒,对象请求最大等待时间
idleTimeout 对象闲置最大时间(毫秒) 默认3分钟,超时会被清理
holdTimeout 对象被持有不用最大时间(毫秒) 默认5分钟,超时会被清理
forceCloseObject 是否需要暴力关闭对象 池关闭或重置,使用,默认false;true:直接关闭使用中对象,false:等待处于使用中归还后再关闭
waitTimeToClearPool 延迟清理的时候时间(秒) 默认3秒,非暴力清理池下,还存在使用中的对象,延迟等待时间再清理
idleCheckTimeInterval 对象闲置扫描线程间隔时间(毫秒) 默认5分钟
objectFactoryClassName 自定义的对象工厂类名 默认为空
enableJmx JMX监控支持开关 默认false
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(1) 发布并加入讨论🔥
发表了资讯
2021/02/23 20:18

BeeOP 0.6 发布,代码重构后优化

小蜜蜂对象池是一款轻量级Java池化工具 坐标(Java7) <dependency> <groupId>com.github.chris2018998</groupId> <artifactId>beeop</artifactId> <version>0.6</version> </dependency> 更新内容 1:优化对象接口反射调用 2:对象句柄中增加无参调用方法 3:增加方法调用屏蔽处理(比如原生对象上的关闭方法,配置后可阻止用户对原生对象发起关闭) 项目地址 国内地址: https://gitee.com/mirrors/BeeOP 国外...

3
3
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
JetBrains Kotlin <1.4.21 不正确的默认权限漏洞
缺省权限不正确
JetBrains Kotlin 是一款在 Java 虚拟机上运行的静态类型编程语言。 JetBrains Kotlin 1.4.2之前版本存在不正确的默认权限漏洞,原因是 createTempFile/createTempDir 方法创建的临时文件或文件夹具有不安全的访问权限,该系统上的其他用户能够从此类文件中读取数据并列出目录,攻击者可利用此漏洞获取敏感信息。
CVE-2020-29582 MPS-2021-1082
2023-12-20 19:29
com.google.code.gson:gson 存在BigDecimal拒绝服务漏洞
反序列化
受影响版本的gson容易通过 writeReplace 方法反序列化不受信任的数据,由于返回BigDecimal,可能导致 DoS 攻击。
CVE-2022-25647 MPS-2022-12287
2023-12-20 19:29
JetBrains Kotlin <1.6.0 存在锁定不当漏洞
加锁机制不恰当
JetBrains Kotlin 是一款在 Java 虚拟机上运行的静态类型编程语言。 JetBrains Kotlin 1.6.0 之前版本中存在依赖项锁定不当漏洞,由于无法锁定多平台 Gradle 项目的依赖项,攻击者可利用此漏洞更改 Kotlin 的 Gradle 依赖,从而造成依赖冲突或拒绝服务。
CVE-2022-24329 MPS-2022-3233
2023-12-20 19:29
Okio 安全漏洞
数值类型间的不正确转换
Okio是Square开源的一个库。 square okio存在安全漏洞,该漏洞源于不处理解析格式错误的gzip缓冲区时可能引发的异常,可能会导致客户端拒绝服务。
CVE-2023-3635 MPS-a2tx-d4fb
2023-12-20 19:29
JSON-Java 安全漏洞
不加限制或调节的资源分配
该漏洞存在于JSON-Java解析器中,攻击者可以通过一个较小的输入字符串,导致无限量的内存被使用,造成拒绝服务。
CVE-2023-5072 MPS-m4ex-dja2
2023-12-20 19:29
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
1 评论
9 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部