Elastic-job原本是当当Java应用框架ddframe的一部分,本名dd-job。ddframe包括编码规范,开发框架,技术规范,监控以及分布式组件。ddframe规划分为4个演进阶段,目前处于第2阶段。3、4阶段涉及的技术组件不代表当当没有使用,只是ddframe还未统一规划。
Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联.
Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联.
PM2是具有内置负载平衡器的Node.js应用程序的生产流程管理器。 它可以保证你的node程序在生产系统时刻运行,不会因为一个程序的错误而导致整个进程或集群的异常。另外PM2还具备一套完整的node进程功能。
Mocha(发音"摩卡")诞生于2011年,是现在最流行的JavaScript测试框架之一,在浏览器和Node环境都可以使用。所谓"测试框架",就是运行测试的工具。通过它,可以为JavaScript应用添加测试,从而保证代码的质量
GoogleMapsAPI是Google为开发者提供的Maps编程API。它允许开发者在不必建立自己的地图服务器的情况下,将GoogleMaps地图数据嵌入到网站之中,从而实现嵌入GoogleMaps的地图服务应用,并借助GoogleMaps的地图数据为用户提供位置服务。
CEP,是一种实时事件处理并从大量事件数据流中挖掘复杂模式的技术,全称为Complex Event Processing,即复杂事件处理。Esper是CEP的一个开源实现,它是一个Java开发的事件流处理和复杂事件处理引擎。该引擎可应用于网络入侵探测,SLA监测,RFID读取,航空运输调控,金融方面(风险管理,欺诈探测)等领域。它的特点是能够快速开发出复杂的实时计算策略,并且有着高吞吐量以及低延迟的特点,特别适合大量数据的实时计算。
Spring Boot 入门(一) -- 5分钟构建Spring Web Rest风格的Hello World
Drupal是全球著名的网站程序之一,也是非常受欢迎的网站程序之一,但国内使用的人数不多。在此介绍安装Drupal程序,用图文记录下了Drupal的详细安装过程步骤,希望对网站新手或Drupal新手有帮助。
WordPress 是一种使用 PHP语言和 MySQL数据库开发的开源、免费的Blog(博客,网志)引擎,用户可以在支持 PHP 和 MySQL 数据库的服务器上建立自己的 Blog。WordPress 是一个功能非常强大的博客系统,插件众多,易于扩充功能。安装和使用都非常方便。目前 WordPress 已经成为主流的 Blog 搭建平台。
最近突然想看看Java7编程规范,本来想从网上直接找找看有没有已经翻译好的,结果下了几个发现跟英文版的大部分都对应不起来,所以打算把自己感兴趣的章节翻译一下,顺便练习下英语了~。顺便说下我参考的是The Java® Language Specification Java SE 7 Third Edition这个规范来翻译的。
最近突然想看看Java7编程规范,本来想从网上直接找找看有没有已经翻译好的,结果下了几个发现跟英文版的大部分都对应不起来,所以打算把自己感兴趣的章节翻译一下,顺便练习下英语了~。顺便说下我参考的是The Java® Language Specification Java SE 7 Third Edition这个规范来翻译的。
上一节我们在演示查询的时候只使用一个 `title:step` 就查出了所有 title 包含 step 的记录,感觉有点类似数据库的 like 功能,主要是分词的匹配的原因,实际上分词匹配功能要远强于 sql 的 like 功能。既然分词这么重要在国内使用那肯定离不开中文分词,本文介绍如何配置使用(smartcn)
通过前面几节的了解,我们对 solr 有了一些了解,对一些基本概念、语法也有了初步的认识,那么很多没有接触过搜索引擎的小伙伴可能会问,这东西到底有什么用,在自己的项目中能发挥什么作用,结合我们自己的项目,简要做个演示。
MongoDB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想,在MongoDB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。
JAXB(Java Architecture for XML Binding简称JAXB)允许Java开发人员将Java类映射为XML表示方式。在本文中,我们将介绍jaxb的基本用法。后续文章中会介绍更复杂的一些用法。
Java SE 平台提供的 XML 处理主要包括两个功能:JAXP(XML 处理,Java Architecture XML Processing)和 JAXB(XML 绑定,Java Architecture XML Binding)。JDK中`javax.xml.parsers`包下是SAX和DOM的实现。本文,我们将简单介绍该包的使用及部分源码探究。
前两节主要介绍了一些基本的概念以及简单的查询演示,大家可能有一些大概的印象了,这个时候想要进一步了解一下,尤其是那个 web 控制台查询操作的时候太混乱了,每个条件都代表什么意思都不知道,这节主要介绍查询数据相关的一些概念以及运算、语法。
MongoDB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想,在MongoDB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。
我们要学习一个新东西的时候总是仍不住会问,这是个什么东西,干什么用的,能帮我们解决什么问题,然后才是如何应用,如何优化等等。本次我们要讨论的是 Solr,它是一个开源的企业级搜索服务器,可以说是 Apache Lucene 搜索引擎的企业级应用的实现。下面几节将简单介绍下 solr 的应用(使用 Solr5.0 版本)。
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。有非常丰富数据结构,且数据结构的常见操作均为原子性的;高速读写
Flume NG是一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。由原来的Flume OG到现在的Flume NG,进行了架构重构,经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。
Flume NG是一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。由原来的Flume OG到现在的Flume NG,进行了架构重构,经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。
Flume NG是一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。由原来的Flume OG到现在的Flume NG,进行了架构重构,经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。
对于 Java 开发的 web 项目,Spring 成了小伙伴们的首选,几乎成了 JavaEE 的标配,在开发、测试的过程中免不了会碰到很多相关的错误,其中比较常见的一个错误就是 NoSuchBeanDefinitionException,下面来讨论一下常见的几种情况, 本文着重介绍 bootstrap 项目注解实例化 Bean,至于 xml 配置部分逻辑性比较好查,应该更容易定位问题,在这里就不介绍了。
Flume NG是一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。由原来的Flume OG到现在的Flume NG,进行了架构重构,经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。
Flume NG是一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。由原来的Flume OG到现在的Flume NG,进行了架构重构,经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。
Jenkins能够集成git,在jekyll环境下,实现博客集成系统,完成提交最新代码,自动生成新的博客;同时Jenkins也能够集成git、maven和junit等,实现java源码的编译、测试、发布等功能的集成开发环境。
Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一,通过将CheckStyle的检查引入到项目构建中,可以强制让项目中的所有的开发者遵循制定规范,不是仅仅停留在纸面上。Checkstyle提供了高可配置性,以便适用于各种代码规范,所以除了可以使用它提供的sun的代码标准外,你也可以定制自己的标准。
从javaSE6开始,JSR 223中规范了在Java虚拟机上运行的脚本语言与Java程序之间的交互方式,目前Java虚拟机支持比较多的脚本语言,比较流行的有JavaScript、Scala、JRuby、Jython和Groovy等,另外基于java开源的动态表达式语言也很多,如:MVEL、ognl、JUEL,还有国人开发的Aviator、JSEL,本章对最近研究的groovy、mvel以及java中动态调用各动态脚本性能比较。
异步JavaScript和XML(Asynchronous JavaScript and XML),简称为ajax。一个网页最重要的是跟用户的交互,跟服务器的交互,如果每进行一次交互就跳转一次页面(或刷新一下页面),这是非常不现实的,用户体验也肯定不好,所以ajax就得到了广泛的应用,ajax非常重要的一点特性就是:不需要刷新页面即可从服务器(或客户端)上加载数据
异步JavaScript和XML(Asynchronous JavaScript and XML),简称为ajax。一个网页最重要的是跟用户的交互,跟服务器的交互,如果每进行一次交互就跳转一次页面(或刷新一下页面),这是非常不现实的,用户体验也肯定不好,所以ajax就得到了广泛的应用,ajax非常重要的一点特性就是:不需要刷新页面即可从服务器(或客户端)上加载数据
属性操作主要包括Attr特性和Prop属性两部分,attr特性就是存在于元素的attributes属性中的节点,对应的nodeType为2;而prop属性,则是对象的一个值,可以通过对象实例.prop属性名来访问和设置
在JavaScript的世界里,效果会令操作体验及交互体验更胜一筹,通过jQuery,能够更加轻松的为页面操作添加“酷炫”的视觉效果,甚至创建精致的动画
一个网页,不可能内容是一成不变的,可能会根据用户的操作将新的内容呈现给用户,如果每次都需要向服务器请求新的页面,服务器的负担会非常大,所以浏览器端对页面进行一些DOM操作是必须的
要在应用程序中实现交互性,必须时刻关注用户的一举一动,并对他们的操作给出响应,jQuery增强并扩展了了JavaScript的基本事件处理机制,很好的实现了开发人员在这方面的需求
要在应用程序中实现交互性,必须时刻关注用户的一举一动,并对他们的操作给出响应,jQuery增强并扩展了了JavaScript的基本事件处理机制,很好的实现了开发人员在这方面的需求
jQuery提供了jQuery.queue/dequeue和jQuery.fn.queue/dequeue,实现对队列的入队、出队操作。不同于队列定义的是,jQuery.queue和jQuery.fn.queue不仅执行出队操作,返回队头元素,还会自动执行返回的队头元素
Cache数据缓存系统现在广泛应用于DOM元素、动画、事件等方面,消除了将动画队列都存储到各DOM元素的自定义属性中所带来的隐患,另外如果给DOM元素添加过多的自定义的属性或数据可能会引起内存泄漏
jQuery.Callbacks()是在版本1.7中新加入的。它是一个多用途的回调函数列表对象,提供了一种强大的方法来管理回调函数队列。Deferred对象就是jQuery的回调函数解决方案,其含义就是"延迟"到未来某个点再执行。
jQuery通过.extend和.fn.extend像jQuery的全局对象和实例对象中添工具函数,全局对象函数就像C/C++、JAVA中的静态函数,可以通过$.fnName()或者jQuery.fnName()来调用,而实例对象函数则似类中的方法,可为类的实例化对象调用,如:$(selector).fnName()或者jQuery(selector).fnName()等,本文主要叙述jQuery中扩展的工具类函数的函数原型及一些例子
jQuery凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax的操作
在JavaScript中,内置对象Array和Function本身提供了不少方法,有些方法为人所熟知,有些方法则不被注意。而有些方法虽然被人所熟悉,却又有不被重视的使用场景,去实现一些妙用。本文结合当下自己的使用心得,一方面做个分享,一方面也是个备忘.
之前参与过一个node的项目,使用express框架,感觉这种异步IO以及事件驱动的架构设计用在一些高并发的场景还是大有可为的,决定深入学习一下。
之前参与过一个node的项目,使用express框架,感觉这种异步IO以及事件驱动的架构设计用在一些高并发的场景还是大有可为的,决定深入学习一下。
之前参与过一个node的项目,使用express框架,感觉这种异步IO以及事件驱动的架构设计用在一些高并发的场景还是大有可为的,决定深入学习一下。
EventProxy是一个简单的事件侦听者模式的实现,由于底层实现跟Node.js的EventEmitter不同,无法合并进Node.js中。但是却提供了比EventEmitter更强大的功能,且API保持与EventEmitter一致,与Node.js的思路保持契合,并可以适用在前端中。
Nginx中大部分功能都是通过模块方式提供的,比如Http模块、Mail模块等。通过开发模块扩展Nginx,可以将Nginx打造成一个全能的应用服务器,但是,Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开发者对其望而生畏。ngx_lua模块通过将lua解释器集成进Nginx,可以采用lua脚本实现业务逻辑,由于lua的紧凑、快速以及内建协程,所以在保证高并发服务能力的同时极大地降低了业务逻辑实现成本。
Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:淘宝、新浪、网易、 腾讯等.
前面几节讲了几个 ST 的简单示例以及 MVC 的主要概念,大部分也都是 SDK 文档里面的内容,想要了解更多概念以及组件的用法自己查找 ST 的帮助文档全面学习下。本章开始讲一些开发实用性的东西,对一些主流的页面进行分析,看看 ST 如何设计实现这些功能。
ST2 提供了一个强大的应用程序架构 MVC,专为构建跨平台的 web 应用程序而优化,通过命名空间和文件夹将整个项目按功能划分为几个模块(数据模型 models、视图 views、控制器 controllers、存储器 stores、配置文件 profiles)。使得整个项目代码看上去更直观,容易维护。
Sencha Touch(下称ST) 框架是第一个基于 HTML5 的 Mobile App 框架,是 Ext 整合 JQTouch 和 Raphael 而推出的适用于最前沿 Touch Web 的框架,完全基于 HTML5+CSS3 的最新标准,全面兼容 Android 、 Apple IOS 和 BlackBerry 等设备。ST 继承了 Ext 的界面风格,可以让你的 Web App 看起来更像 Native App,其丰富的界面组件、强大的数据管理以及跨浏览器兼容的矢量图将 ST 打造成 Mobile 跨平台开发利器,易扩展,足够应付绝大部分开发需求。
随着大数据时代的到来,传统的关系型数据库已经无法满足不同的存储需求,短短几年的时间NoSQL大行其道,大有后来居上之势。NoSQL根据不同的数据库类型又可以分为:文件存储、键值存储、列存储、图数据库、RTF存储等。本文我们一起来探索下基于文件存储最流行的NoSQL-MongoDB在实际架构中的应用。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、最像关系数据库的。他支持的数据库结构非常松散,是类似json的bjson格式,可以存储比较复杂的数据类型。Mongo完全遵循javascript语法,语法比较灵活,支持的查询功能非常强大,几乎可以实现关系数据单表查询的绝大部分功能,并且支持对表建立索引。
jBPM是目前市场上主流开源工作引擎之一,在创建者Tom Baeyens离开JBoss后,jBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过,目前官网已经推出了jBPM6的beta版本;Tom Baeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。由此可以推测JBoss内部对jBPM未来版本的架构实现产生了严重的意见分歧。本文试着对二者做一些比较。
redis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务、管道及有jedis自身实现的分布式。本文对jedis关于事务、管道和分布式的调用方式做一个简单的介绍和对比。
如果,你需要创建多个项目,项目之间即独立又有关系,那么创建一个Maven多模块项目是个非常好的选择,也非常cool!怎么在Eclipse里面创建多模块工程,以及需要注意哪些地方,我在这里做个简单的介绍
Redis 的5种不同的数据类型: 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)。
Redis 是完全开源免费的,遵守BSD协议的key-value持久化存储器。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)5种不同的数据类型。灵活运用这些数据类型来构建数据模型远比简单的使用key-value存储更具有实际意义。
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度.
Maven这一跨平台的项目管理工具。作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手。
Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。
前面已有文章介绍在mac下安装jekyll,本文中只简单介绍Windows上装jekyll,其中ruby安装的版本是ruby 1.9.1p430,对于其他ruby版本安装jekyll中出现问题此处不做说明
本文,我们将向大家介绍JUnit4框架提供的几个非常实用的运行器(Runner):Suite、Parameterized、Categories、Enclosed 和 Theories。
JUnit4 结合 Hamcrest 提供了一个全新的断言语法 —— assertThat。程序员可以只使用 assertThat 一个断言语句,结合 Hamcrest 提供的匹配符,就可以表达全部的测试思想
在《JUnit4 使用进阶一》中,我们介绍了JUnit4的下载安装,简单调用及运行测试方法,在本文中将继续对JUnit4提供的一些常用功能(忽略某个测试、对异常进行测试、设置超时时间、测试前后及顺序)进行介绍。
Jekyll是一款简单的博客系统,也可以说是一个静态网站生成器。她有一个模版目录,存放整个静态网站的模版文件,可以通过Liquid处理模版文件,把使用标记语言Textile或Markdown编写的内容文件,按照模版格式,转换成最终的静态网站页面。大名鼎鼎的GitHub Pages就是通过她实现的。在这里,我们将告诉你如果使用jekyll搭建一个简单的博客网站
本想在本机Macbook pro上装个jekyll,可是本机xcode自动安装了ruby 1.8.7版,导致无法通过当前版本的gem安装jekyll。使用 gem update --system 命令对gem进行升级,可是貌似没有升级成功。所以,我先装了个brew,通过brew安装了最新的ruby,最后通过新版gem成功安装了jekyll.