Vert.x官方的定义是 “一个在JVM上构建响应式应用的工具集(toolkit)”
这里面第一个重要的词是 “工具集” 。所以,Vert.x不是一个应用服务器,也不是一个容器,更不是一个JavaScript库。 Vert.x就是一个 jar 包,所以一个Vert.x应用就是一个使用 jar 包的应用。 Vert.x没有自己定义一个打包模型,每个Vert.x 组件 都是普通的 jar 文件。 我们假设你正在使用某种构建工具以给你的应用添加 vertx-core 依赖,比如 Maven 或 Gradle。 如果希望使用某一个Vert.x组件,只要把它作为一个依赖添加到构建文件里即可,这非常简单。要想利用Vert.x提供的各种优美功能,你只需要编写对应的代码,就像使用工具一样。
另一个重要的词是 "响应式(reactive) "。Vert.x就是为构建响应式应用(系统)而设计的。响应式系统这个概念在 Reactive Manifesto 中有详细的定义。尽管那篇文章读起来用时不长, 我们还是在这里总结一下里面的4个重点吧:
响应式的(Responsive):一个响应式系统需要在 合理 的时间内处理请求(何谓合理?我把它交给您来定义)。
弹性的(Resilient):一个响应式系统必须在遇到 异常 (崩溃,超时, 500 错误等等)的时候保持响应的能力, 所以它必须要为 异常处理 而设计。
可伸缩的(Elastic):一个响应式系统必须在不同的负载情况下都要保持响应能力,所以它必须能伸能缩, 并且可以利用最少的资源来处理负载。
消息驱动:一个响应式系统的各个组件之间通过 异步消息传递 来进行交互。
其中最后一条展示了Vert.x的本质 - 它是事件驱动的,也是非阻塞的。事件在 Event Loop线程里进行传递, 你在任何时候都不能去阻塞它 。 我们来解释一下为什么。与传统的“企业级”系统不同,Vert.x使用非常少的线程。其中的一些线程叫做 Event Loop 线程,它们用来快速处理 Handler 中的事件。如果你把这个线程给阻塞了,那么事件传递的过程就将会被阻塞,事件就不能被传递。 这种执行模型对你的代码风格有着深远的影响。我们要抛弃传统 的阻塞风格的代码 [1],写出异步的、非阻塞的代码 [2]。
[1]
[2]
Vert.x的历史
2011.6.17 项目“Node.x”第一次提交
2011.10.10 ”Node.x“ 版本0.1发布
(在此之前还被称为Node.x)
2012.5.9 Vert.x 版本1.0发布
2012.12 发起人Tim离开Vmware,加入Redhat
2013.1 所有的参与者都同意 Vert.x加入Eclipse基金会
2013.7.17 Vert.x 版本2.0发布
2013.8 Vert.x 加入Eclipse基金会
2014.5 Vert.x 项目获得”Most Innovative Java Technology“
2015.9 Vert.x 版本3.0发布
2016.6 Vert.x 生产稳定级版本3.3.0发布
后续会发表干货文章,敬请期待
本文暂时没有评论,来添加一个吧(●'◡'●)