Junx
Junx 工具包,是辅助 java 应用程序开发的第三方开源工具包,所有代码开源,github 地址详见:https://github.com/junxworks/junx
Maven 引用示例
最新版本在http://mvnrepository.com/上搜索junxworks
<dependency>
<groupId>io.github.junxworks</groupId>
<artifactId>junx-core</artifactId>
<version>1.0.6</version>
</dependency>
目前 Junx 工具包一共包含了 junx-core、junx-cache、junx-event、junx-spel、junx-stat、junx-netty6 个子模块。
junx-core
1、封装通用工具包 utils
2、可伸缩的线程池 StandardThreadExecutor(参考 tomcat 的线程池)
3、统一异常封装 exception
4、简单的选择器 Chooser,目前支持顺序选择、一致性哈希算法选择
5、支持生命周期管理的统一接口及其实现 lifecycle
6、轻量级环形缓存 ringfiber
7、轻量级进度跟踪器 tracker
junx-cache
Cache 是操作 KV 缓存的统一接口,目前支持 Redis、Aerospike、EHCache。支持项目本地 cache.properties 配置与 zookeeper 集中配置。
junx-event
轻量级进程内事件总线 EventBus,基于发布-> 订阅模式实现,可以在进程内进行跨线程通信。目前事件总线实现了下面两种事件总线:
1、基于当前线程发布事件的 SimpleEventBus。
2、支持异步发布事件的 DisruptorEventBus。
每个事件订阅者由一个事件通道 EventChannel 和一个事件处理类 EventChannelHandler 组成,事件从 EventBus 发布出来过后,经由 EventChannel,再到具体的事件处理类 EventChannelHandler。每个 EventChannel 实现都提供了不同的功能,目前主要提供:
1、SimpleEventChannel:当前线程执行事件处理。
2、ExecutorEventChannel:到指定线程池执行事件处理。
3、DisruptorEventChannel:基于 Disruptor 框架实现的单线程执行事件处理。
业务实现 EventChannelHandler 即可,通过事件通道 EventChannel 与事件处理 EventChannelHandler 分离的设计方式,可以将业务执行与线程解耦,可以通过配置注入灵活配置业务执行方式。
junx-netty
封装了通用的 netty 服务器启动类,支持心跳检测、长连接,业务只需要实现业务处理的 ChannelInboundHandler 接口,业务处理类必须是无状态的,可以多线程共享。服务器默认传输字节流,如果不满足需求,可以自己实现 ChannelInitializer。实现了多连接池的管理类 NettyChannelPoolManager,与连接池封装类 NettyChannelPool。
junx-stat
提供基于交易时间窗口的统计函数,目前支持求和、求均值、计数、唯一计数、相同计数、最大值、最小值、概率分布、区间概率分布、快照、状态等统计函数。
junx-spel
提供基于 SpringEL 的表达式编译、表达式执行、扩展函数接口、内置函数等功能。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于