「java轻量级规则」java轻量级框架

博主:adminadmin 2023-01-11 01:39:06 951

今天给各位分享java轻量级规则的知识,其中也会对java轻量级框架进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

JAVA 什么是轻量级容器和重量级容器

其实在Java里面很少有号称重量级容器的,好多都是说轻量级!

比如spring,目前市面上用的很多,但人家还是号称轻量级(不好太夸大)。

轻重量级只是在你的理解上,你人认为功能很强大,你也可以称它为重量级啊~叫法不同而已,没有什么区别,仁者见仁智者见智吧!

就像有三个层次的开发人员在一起一样,高级、中级和初级,初级的人觉得中级的人是高手,高级的在中级的人认为也是高手,高高级在初级人眼里就是高高手。站在不同人角度,看问题的侧重点是不一样的,所以不要纠结这个问题了。

轻量级规则引擎调研

我们基于Flink实现了云端的规则引擎,以flink on yarn方式在运行,依赖hadoop和zookeeper,对于边缘侧来说比较重,所以打算调研下轻量级的规则引擎,我们的业务诉求如下:

1、轻量级

2、支持海量规则

4、便捷的规则启停

5、动态加载

从如下几方面对比目前比较流行的几个规则引擎框架:

1、社区活跃度

drools(3.7k),比较活跃的社区。三者中遥遥领先。

2、SQL支持度

不支持,通过DSL定义规则。有开发工具,生成drl文件。

3、开箱即用(支持JAVA API直接调用)

可直接maven引入依赖,开箱即用。规则需要预先加载,环境初始化比较慢2秒左右。需要自己写规则调度。

4、部署方式

可部署多个kie-server,kie-server为单机模式。

1、社区活跃度

Siddhi(1.2k)。

2、SQL支持度

与flink sql类似,流式处理。定义source、sink,支持多流join。丰富的插件:kafka、redis等。通过类SQL的语言描述事件流任务。

3、开箱即用(支持JAVA API直接调用)

可直接maven引入依赖,开箱即用。规则需要预先加载,环境初始化比较慢2秒左右。需要自己写规则调度。

4、部署方式

第一种方式:Standard Deployment  ,单机部署,与drools的kie-server的部署方式类似。

第二种方式:完整的分布式部署

此部署规模已经很接近flink了,但是没有checkpoint的机制。

esper的社区活跃度真不高esper(699),所以我们直接略过。

几个主流的规则引擎其实实现机制都差不多,功能都能满足我们的业务场景,drools在sql支持方面比较弱,优势在社区活跃度。Siddhi的部署方式已经接近Flink,网上都说它比较轻量级,我是真的没看出来。最终打算采用drools,直接通过java api进行调用。自己写个简单的调度,如果上了它的执行调度模块,还不如直接使用flink,flink在这方面成熟多了,有checkpoint、status等机制。对于drools的动态加载,我会单独开一篇文章来详细说明,这个是我们的痛点,基于flink目前机制实现不了的。

什么是JAVA组件?

例如:javabean是一个类,但是如果您的类想要成为beajavabean,您必须向类中的变量(比如XXX)添加两个内部函数getXxx()和setXxx(),并且您必须在类中有一个无参数的构造函数。这些就是javabean,组件之间必须有一个相互使用的规范。

Java实际上是所有的类。组件是一个抽象,是符合规范的类的集合。要知道它可以提供某些功能。以J2EE为例,servlet,jsp,javabean,ejb都是组件。

但在使用上,都会分阶级,有自己的特殊规则。

扩展资料:

首先,轻量级组件是用Java代码绘制的,因此具有平台可移植性,重量级组件是由调用系统的函数(如主窗体)绘制的组件,一般来说,尽量使用轻量级组件,这有利于可移植性。

java中的大多数组件。swing包是轻量级的,而java包则是轻量级的,awt很重。

Swing是用100%纯Java实现的,而Swing组件是用Java实现的轻量级组件,没有本地代码独立于操作系统支持之外,这是拥有AWT组件的最大组。当AWT组件通过特定的平台时

对等类(Peer)实现,因此Swing比AWT组件更实用。Swing不能回答相同的问题平台上的一致性能和提供本地窗口系统不支持的附加功能的能力。

重量级组件:特定平台必须有相应的组件。

轻量级组件:在一个虚拟的画布上绘制组件(swing非常慢),所有的轻量级组件应该“最终”属于重量级组件(jframe、jdialog)。

因为它是这样绘制的,所以可以在各种平台上实现一致的性能。同样,如果混合重量级组件和轻量级组件容易在重叠上引起冲突。

java中重量级和轻量级的区别

一般来说轻重量级是个相对概念,

根据框架使用是否方便,提供的服务是否复杂来判断。

像Spring,相对于EJB来说就是轻量级,因为EJB考虑的问题很多很全,做小项目没必要用这么复杂。

简单的例子,你要做个网站,没有数据交互,用个最简单的Html+Css就好了,

没必要去用Servlet或Struts

java轻量级规则的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java轻量级框架、java轻量级规则的信息别忘了在本站进行查找喔。