选择Vert.x的3个理由

Vert.x是用于JVM的轻量级高性能应用程序平台

Vert.x是用于JVM的轻量级高性能应用程序平台

现代Web应用程序和移动客户端的兴起重新定义了Web服务器的期望。 Node.js是第一个识别范式转换并提供解决方案的技术。

应用程序平台Vert.x借鉴了Node.js的一些创新,并使其在JVM上可用,将新鲜的想法与最复杂,最快的运行时环境之一结合在一起。 Vert.x附带了一系列令人兴奋的功能,这些功能对于开发Web应用程序的任何人都非常有趣。

非阻塞,事件驱动的运行时

Vert.x提供了非阻塞的 , 事件驱动的运行时。 如果服务器必须执行需要等待响应的任务(例如,从数据库请求数据),则有两种方法可以实现:阻塞和非阻塞。

传统方法是同步或阻塞调用。 程序流暂停并等待答案返回。 为了能够并行处理多个请求,服务器将在不同的线程中执行每个请求。 优点是相对简单的编程模型,但是如果线程数量变大,不利的一面是大量开销。

第二种解决方案是非阻塞调用。 调用者无需等待答案,而是继续执行,但是提供了一个回调,一旦数据到达,该回调将被执行。 这种方法需要一个(稍微)更复杂的编程模型,但开销却少得多。 通常,当需要并行处理大量请求时,非阻塞方法会带来更好的性能。

易于使用的并发性和可伸缩性

Vert.x应用程序由松散耦合的组件组成,可以对其进行重新排列以适应不断增长的性能要求

Vert.x应用程序由松散耦合的组件组成,可以对其进行重新排列以适应不断增长的性能要求

Vert.x应用程序是使用类似于Actor的并发模型编写的。 一个应用程序由几个独立运行的组件(即所谓的Verticles)组成。 一个Verticle运行单线程,并通过在全局事件总线上交换消息来与其他Verticles通信。

由于它们不共享状态,因此Verticles可以并行运行。 结果是编写多线程应用程序的一种易于使用的方法。 您可以创建几个负责同一任务的Verticles,并且运行时将在其中分配工作负载,这意味着您可以毫不费力地充分利用所有CPU内核。

顶点也可以分布在多台计算机之间。 这对于应用程序代码是透明的。 Verticles使用相同的机制进行通信,就好像它们将在同一台计算机上运行一样。 这使得扩展应用程序变得非常容易。

Vert.x支持JVM上最流行的语言。正在支持Scala和Clojure。

Vert.x支持JVM上最流行的语言。 正在支持Scala和Clojure。

多种语言

与许多其他应用程序平台不同,Vert.x是多语言的。 应用程序可以用几种语言编写。 甚至可以在同一应用程序中使用不同的语言。 此时,可以使用Java,Python,Groovy,Ruby和JavaScript,并且即将支持Scala和Clojure。

结论

Vert.x是一个相对较年轻的平台,因此其生态系统不如更成熟的平台丰富。 但是,对于最常见的任务,还有扩展可用。 Vert.x的优势令人惊讶。 它的无阻塞,事件驱动性质非常适合现代Web应用程序。 Vert.x使编写并发应用程序变得容易,该应用程序可以轻松地从一台低端计算机扩展到具有多个高端服务器的集群。 再加上您可以为JVM使用最流行的语言,并使Web开发人员梦想成真的事实!

参考:从Mike博客博客的JCG合作伙伴 Michael Heinrichs 选择Vert.x的3个理由 。

翻译自: https://www.javacodegeeks.com/2014/03/3-reasons-to-choose-vert-x.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FROONT – 超棒的可视化响应式网页设计工具

FROONT 是一个基于 Web 的设计工具,在浏览器中运行,使得各类可视化设计的人员都能进行响应式的网页设计,即使是那些没有任何编码技能的设计师。FROONT 使得响应式网页设计能够可视化操作,能够在浏览器中使用直观的拖放工具进行设计…

OO-第一单元总结

经过了前三次作业和两次实验的引导,我的编程思路在逐步从面向过程转向面向对象。也对面向对象有了初步的理解。虽然第一次实验由于自己没有及时完成导致没有提交过有些遗憾,但是第二次实验还是提交了几次的(虽然由于时间原因并没有做好本地测…

2013年五大主流浏览器 HTML5 和 CSS3 兼容性大比拼

转眼又已过去了一年,在这一年里,Firefox 和 Chrome 在拼升级,版本号不断飙升;IE10 随着 Windows 8 在去年10月底正式发布,在 JavaScript 性能和对 HTML5 和 CSS3 的支持方面让人眼前一亮。这篇文章给大家带来《五大主流…

PAT L3-007 天梯地图

https://pintia.cn/problem-sets/994805046380707840/problems/994805051153825792 本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线…

Two.js – 为现代浏览器而生的 2D 绘图 API

Two.js 是面向现代 Web 浏览器的一个二维绘图 API。Two.js 可以用于多个场合:SVG,Canvas 和 WebGL,旨在使平面形状和动画的创建更方便,更简洁。 Two.js 有一个内置的动画循环,可搭配其他动画库。Two.js 包含可伸缩矢量…

apache arm 交叉编译_MacOS 下交叉编译的折腾笔记

这是这个系列 “折腾笔记” 的第一篇,希望能用更直白的方式去展现交叉编译的时候做了些什么。因此,这个教程并不是最佳实践,但是可以让小伙伴们有一个更直白的理解。之后,我会把笔记的重点放在 bazel 上交叉编译的最佳实践&#x…

树-二叉树、满二叉树和完全二叉树

树-二叉树、满二叉树和完全二叉树 二叉树的定义: (1)当n0时,为空树; (2)当n>0时,是由一个根结点和称为根结点的左、右子树构成,并且两颗子树互不相交。 满二叉树&…

Codrops 优秀教程:基于 CSS3 的全屏网页过渡特效

向大家分享一个来自 Codrops 的基于 CSS3 实现的全屏网页过渡特效。页面初始布局是四个盒子,点击其中一个会扩张到全屏,其它的会淡出隐藏;关闭当前视图的时候又恢复到初始状态。 您可能感兴趣的相关文章-prefix-free:帮你从 CSS 前…

经典案例:2012年最佳25个响应式网站设计作品《下篇》

2012年,响应式网站设计成为主流,这个概念由著名网页设计师 Ethan Marcotte 在2010年5月份提出,其目标是要让设计的网站能够响应用户的行为,根据不同终端设备自动调整尺寸。 响应式设计不再只是一个概念,众多大公司也把…

npm git 遇到的问题解决笔记

npm 报错 在无可奈何时可以试一试这个命令 npm cache clean --force commit 是如果报这样的错 删掉项目中.git/index.lock文件再commit即可解决问题 1.git config --global user.email xxx163.com 2.git config --global user.name xxx 3.ssh-keygen -t rsa -C xxx163.com(邮箱…

Docverter – 文本文件轻松转换为 PDF,Docx 和 ePub 文件

Docverter 让你无需建立自己的文档转换工具就能够进行文件转换。Docverter 包装了几个开源项目,使您的文档能够进行完美的转换。借助一个简单的 HTTP API ,把使用 HTML,Markdown, 或者 LaTeX 编写的纯文本文件转换为 DOCX,PDF&…

MoreUnit与MoreUnit

就在一年多以前,我写了一篇关于在Eclipse中使用JUnit的文章。 评论者之一推荐MoreUnit ,以进一步提高测试效率。 尝试一下让我感到很高兴,并且我的自主神经系统立即记住了该插件的键盘快捷键…… 另外,在使用MoreUnit一段时间后&…

js html 导出word 不用activexobject,javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第2/2页...

javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第2/2页更新时间:2008年06月21日 22:57:31 作者:由于时间比较紧,没多的时候去学习研究上述工具包,现在用javascript操作ActiveXObject控件&…

平时二十三测

昨日AK, 今日垫底, 我简直是在坐过山车; 以后记住有返回值的函数一定要写返回值,不然全部输出0 题解: 第一题:全是-1, 是2^(n-1)-1,不会证,样例很明显; 对于有X个跟班的人&#xff0…

20181103_C#线程初探, BeginInvoke_EndInvoke

在C#中学习多线程之前, 必须要深刻的理解委托; 基本上所有的多线程都在靠委托来完成 一. 进程和线程: a) 进程和线程都是计算机的概念, 跟程序语言没有任何关系 b) 进程和线程都属于计算机操作系统自身控制和调度, 程序语言只有使用的份, 最终的控制权还是得操作系统说了算, …

【完成发布】Lazy Line Painter – 非常有趣的 jQuery 路径动画插件

Lazy Line Painter 是基于 Raphal(一个用于在网页中绘制矢量图形的 Javascript 库)的 jQuery 路径动画插件,能够把线条图案转换为吸引眼球的路径动画模式。 您可能感兴趣的相关文章 60款非常酷的 jQuery 幻灯片演示和下载15个款优秀的 jQuer…

python构建矩阵 x y_生成Python函数一半没问题,当前最正统的代码生成是什么样的?...

机器之心原创参与:思源大家都说深度神经网络能力很强,那么从函数注释生成函数代码,以及从函数代码总结函数注释这种最基础的代码任务到底能不能行?像 Python、Java 这样的通用高级语言,到底在代码生成上能达到什么水平…

福大软工 · 第七次作业 - 需求分析报告(404 Note Found队)

目录 组队后的团队项目的整体计划安排项目logo及思维导图项目logo思维导图产品思维导图产品思维导图-引导产品思维导图-后端数据处理、存储产品思维导图-短信识别产品思维导图-智能分析产品思维导图-壁纸生成产品思维导图-注册界面产品思维导图-登录界面产品思维导图-使用1产品…

Web设计前沿:CSS3 在网页设计中的20个惊艳应用

作为 CSS 的下一个版本,CSS3 给 Web 开发带来了革命性的影响。例如,以前很多需要图片呈现的界面效果,现在使用 CSS3 结合 HTML 就可以实现,CSS3 甚至还可以实现需要 JavaScript 才能实现的复杂动画效果。下面向大家展示 CSS3 圆角…

Websockets与Spring 4

我将整个厨盆放入一个小型Web应用程序中,此应用程序是我在该帖子中开发的一部分-Spring Boot,Spring Integration,RabbitMQ,最后是该帖子的主题,Spring MVC与Spring 4中的Websocket支持。 实时地震清单应用 最终的应用…