摘要: 这里仅仅是验证多线程环境下,AtomicInteger的安全性。通过源码不难发现两点:1、value属性是volatile修饰2、使用了unsafe的CAS操作通过上述两点,实现非阻塞同步(乐观锁),实现线程安全。/** * 验证在并发情况下,AtomicInteger的线程安全性 * Atomic... 阅读全文
posted @ 2015-06-12 17:39 A.King 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 本文分两部分:语法简单说明lambda的使用注:这两部分内容均以类+注释的方式进行说明,并且内容均来自官方教程(https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html)。第一部分:/** * 语法说明类 *... 阅读全文
posted @ 2015-06-01 17:55 A.King 阅读(1186) 评论(0) 推荐(0) 编辑
摘要: /** * javap命令可以对class反汇编得到其字节码文件(此命令并不是jdk8开始的,只不过jdk8中对工具进行加强,增加了一些参数,可通过 javap -help了解) * * 注意: * 字节码文件在虚拟机中是通过栈帧来保存指令的,也称为操作栈,是一个后入先出的栈。并不是针对寄存器的... 阅读全文
posted @ 2015-06-01 17:14 A.King 阅读(496) 评论(0) 推荐(0) 编辑
摘要: /*** 测试使用jdk8中是否仍然可以使用永久代* jvm options* -Xms20m -Xmx20m -Xmn10m -XX:PermSize=10m -XX:MaxPermSize=10m -XX:+PrintGCDetails** 结果运行提示:* Java HotSpot(TM) C... 阅读全文
posted @ 2015-06-01 17:10 A.King 阅读(1967) 评论(0) 推荐(0) 编辑
摘要: 1、esper的处理模型是持续性的——根据statement中事件流(event stream)、视图(views)、过滤器(filters)等的选择,esper引擎一旦处理事件数据,就会变更statement中监听或subscriber接收到事件信息。2、insert Stream — 表示新事件进入到引擎,并进入到事件窗口等。先看个例子 :select * from Withdrawal这个例子的IStream 其实就是进入引擎的withdrawal事件流,并作为新事件被推送给listener。如下图所示:说明:按照上面的EPL语句:select * from withdrawal; 每当 阅读全文
posted @ 2013-09-10 23:12 A.King 阅读(4165) 评论(1) 推荐(1) 编辑
摘要: 声明:Esper官方未提供中文文档,以后更新的大部分内容,均来自官方文档。本人英语小白一枚,翻译内容仅供参考。有些翻译确实不忍直视,君可略过。(有人可能会说,翻译的不好不如不翻,可能会误人子弟;不过我认为,在学习的过程中,尤其是初期可以用“大概”来形容掌握的知识程度,在以后的实践中详加琢磨,可深入理解,并纠正过去的错误认知。简翻或者误翻,如果少量,我感觉在初期的学习中可以接受。个人理解,轻拍!!)第一章以及第二章的部分内容,网络上已经有人进行了翻译,不再赘述。链接如下:http://blog.sina.com.cn/s/blog_4a5b4b930100xxn1.html (任我飞的新浪微博) 阅读全文
posted @ 2013-09-03 23:26 A.King 阅读(2571) 评论(1) 推荐(0) 编辑
摘要: 前面对Esper进行了概述,包括事件类型、事件流、事件窗口以及EPL相关内容。当然,上面的知识,对于简单的Esper开发,应该已经足够,能够根据自己业务需求,做出一个满足需要的Esper应用。但是,真正对Esper的工作原理能够了解多少呢?OK,下面就对Esper的工作原理进行一个简单的描述。首先看一下Esper的事件驱动架构图:整个EDA(Event Driven Architecture)包括:· data streams :事件源,提供高速、海量的实时数据。· Event Stream adapters : 事件源的接入适配器,用于接收事件源数据,并且转发事件给Esp 阅读全文
posted @ 2013-08-28 23:56 A.King 阅读(5574) 评论(0) 推荐(0) 编辑
摘要: 前面对Esper Quick Start & Tutorial进行了简单描述,希望各位看官能够大致了解what is Esper,甚至对how to work有朦朦胧胧的了解。开发一个Esper事件处理程序,非常简单。开发之前只需要引入 esper-version.jar即可。下面是一个简单的Esper示例,包括一个事件类(POJO)和一个主运行类。事件类如下:public class MyEvent { private int id; private String name; public MyEvent(int id, String name) { ... 阅读全文
posted @ 2013-08-26 13:58 A.King 阅读(4415) 评论(1) 推荐(0) 编辑
摘要: 说明: 以下内容,可以参考Esper官方网站《Qucik start &Tutorial 》(顺序做了部分调整)。 PS:因为英语水平有限(大学期间刚过CET4的英语小盲童一枚),翻译很烂(自己都感觉不能直视),描述不清的,可以随时问。一有时间,将给予解释。Tutorial (教程)部分1、简介 (该部分在入门第一弹中有提起)Esper是一个事件流处理和事件关联的引擎(CEP,complexeventprocessing复合事件处理)。作为实时事件驱动框架,当事件流中有事件条件发生时,Esper能够触发自定义动作(POJO)。Esper也是为了大量事件关联而设计,当有数百万的事件进来时 阅读全文
posted @ 2013-08-25 22:56 A.King 阅读(8191) 评论(2) 推荐(2) 编辑
摘要: 说明: 以下内容,可以参考Esper官方网站《Qucik start &Tutorial 》(顺序做了部分调整)。 PS:因为英语水平有限(大学期间刚过CET4的英语小盲童一枚),翻译很烂(自己都感觉不能直视),描述不清的,可以随时问。一有时间,将给予解释。1、什么是Esper?Esper是一个事件流处理和事件关联的引擎(CEP,complexeventprocessing复合事件处理)。作为实时事件驱动框架,当事件流中有事件条件发生时,Esper能够触发自定义动作(POJO)。Esper也是为了大量事件关联而设计,当有数百万的事件进来时,用经典的数据库架构来存储所有事件就有点力不从心 阅读全文
posted @ 2013-08-25 13:09 A.King 阅读(5732) 评论(0) 推荐(0) 编辑