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

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

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

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

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

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

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

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

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

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

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

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

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

选择Vert.x的3个理由相关推荐

  1. vert.x_选择Vert.x的3个理由

    vert.x Vert.x是用于JVM的轻量级高性能应用程序平台 现代Web应用程序和移动客户端的兴起重新定义了Web服务器的期望. Node.js是第一个识别范式转换并提供解决方案的技术. 应用程序 ...

  2. keras 自定义层input_从4个方面介绍Keras和Pytorch,并给你选择其中一个学习库的理由...

    全文共3376字,预计学习时长7分钟 对许多科学家.工程师和开发人员而言,TensorFlow是他们的第一个深度学习框架. TensorFlow 1.0于2017年2月发布:但客观来说,它对用户不是非 ...

  3. 选择北大青鸟的九大理由

    选择北大青鸟的九大理由:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" / ...

  4. 戴尔服务器温度显示器,选择Dell UltraSharp 27的四大理由:有温度的科技更近人心...

    原标题:选择Dell UltraSharp 27的四大理由:有温度的科技更近人心 文/在前线 华仔 5G技术带来了新一波应用潮流,视频化将会广泛普及,而屏幕的魅力也会扩散到各行各业. 大屏一直是屏幕行 ...

  5. 为什么学习Python?选择学习Python的10个理由

    前言 为什么学习Python?选择学习Python的10个理由 Python提供了许多有用的功能特性,这些功能使其相比其他编程语言更流行也更易于学习.它支持面向对象的编程,也支持面向过程编程:我们在下 ...

  6. 选择Citrix XenServer的五个理由

    Citrix XenServer提供了服务性能卓越.高可扩展性.使用简便的虚拟化基础架构,且具有创新的存储集成能力,使IT部门能够在交付 应用的同时降低成本.提高推向市场的速度. 介绍 自2006年首 ...

  7. 2018年要选择 IT 行业的 8 个理由!

    近年来,IT行业发展日趋迅猛,发展必然带来人才的需求,因此,很多年轻人都想进入IT行业.那么,IT行业到底有什么优势,竟然这么吸引大家? 1 高薪永远排先进位 查看全文 http://www.taod ...

  8. 放弃 PHP,选择 Node.JS 的 8 个理由!

    [CSDN 编者按]谈到 PHP 逐渐被看衰这个现象,我想起前两天看到一篇浏览器领域龙头老大的争夺战的有趣报道,报道里大致讲了几个浏览器奋发图强夺得宝座之后又不思进取,然后逐渐被超越的演化史.更往远看 ...

  9. 选择马来西亚城市大学的六大理由

    环境优势 马来西亚的气候宜人,温度常年在30度左右且政治稳定,经济繁荣,治安良好,气候温和,无自然灾害:马来西亚是英联邦国家,其英语普及与使用率很高.马来西亚绝大大多数的大学或院系采用全英文授课,同时 ...

最新文章

  1. UI培训教程之系统图标如何设计?
  2. 第十六届全国大学智能车竞赛华北赛区成绩汇总
  3. Vivado中两种RTL原理图的查看方法和区别
  4. 深入Java泛型(四):RxJava中泛型的使用分析
  5. JDK8新特性之接口默认方法与静态方法
  6. unity3d 地面印花_unity怎么实现挖掘泥土?
  7. LINUX(CENTOS)下载编译nload
  8. java软件工程师培训学_Java软件工程师学习路线
  9. 离线 维基百科 android,iPhone上的离线维基百科(附安装方法)
  10. 详解DNS域名解析全过程
  11. 3D动画在线播放工具-3dplayer功能演示
  12. Keystone认证服务详细操作流程
  13. shecodject生成免杀木马,一步过360、火绒
  14. thinkphp6如何部署在虚拟主机上?
  15. c语言红酒编程题,C笔试题练习 - linbo5411的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. 金华万豪、温州万豪、温州乐清万怡、哈尔滨城市中心万枫、九寨英迪格等酒店开业 | 全球旅报...
  17. 修改C盘下的用户名(适合win10和win11)
  18. android 时间颜色,android修改状态栏时间和日期颜色.docx
  19. Java使用Jsoup爬虫获取网站内容(三)获取元素内容属性的方法
  20. 高级数据操作--联合查询

热门文章

  1. Mybatis中properties标签的使用
  2. Spark SQL 中UDF的讲解
  3. php类常量的特点,php类常量是什么?类常量用法详解
  4. html 中一个格子拆分成两个_一个效果惊人的数字游戏
  5. 转-SpringBoot——使用外置的Tomcat服务器
  6. mybatis_user_guide(7) SQL语句构建器类
  7. 优先队列——二项队列(binominal queue)
  8. java泛型程序设计——调用遗留代码
  9. java中regex_Java 9中的新Regex功能
  10. spring发邮件_跟踪异常–第4部分– Spring的邮件发件人