Vert.x简介:什么是Vert.x,它能做什么?为什么我们需要Vert.x 引⾔
笔者研究Vert.x有⼀段时间了,⼀直想写点什么,但⼜不知道如何下⼿,今天先试着从来⾃哪⾥Where?是什么WHAT? 和为什么需要它WHY?⼏个⽅⾯介绍⼀下Vert.x,后⾯再写写HOW的问题?介绍如何使⽤Vert.x
⼀, Vert.x的历史(来⾃哪⾥?)
Vert.x由蒂姆·福克斯Tim Fox于2011年创⽴,当时他受雇于VMware,Fox最初将项⽬命名为“ Node.x”,这是针对Node.js的命名,其中“x”表⽰新项⽬本质上是多语⾔的,并且不仅仅⽀持JavaScript。该项⽬后来更名为“ Vert.x”,以避免潜在的法律问题,因为“ Node”是Joyent Inc.拥有的商标。
2012年12⽉,在FOX从VMware离职以后,VMware强⾏控制了(提供法律⽂件)Vert.x社区的Vert.x商标,域名,博客,Github帐户等,最终在
2013年1⽉,VMware⼤发慈悲,把Vert.x移交给中⽴的法⼈实体Eclipse Foundation。
2013年8⽉,核⼼Vert.x项⽬完成了向Eclipse Foundation的迁移。
2014年5⽉,Vert.x在JAX创新奖中获得了“最具创新Java技术”奖。
2016年1⽉12⽇,蒂姆·福克斯(Tim Fox)卸任Vert.x项⽬的负责⼈,项⽬的长期贡献者Julien Viet取代了他的位置。
⼆, 什么是Vert.x?
从Vertx.的历史就能看出来,它最初的名字是Node.x,是不是和Node.js很像。你看的没错,它就是针对Node.js优化⽽来的,了解Node.js 的⼈都知道,Node.js虽然名字上是JS,听起来是JS框架,⽤于前端编程的。如果你这样理解,那就⼤错特错了。
⼤家都知道JS是运⾏在浏览器上的前端编程语⾔,但node.js确是运⾏在浏览器之外的,更确切的说是运⾏在服务器端的,⽜逼的作者Ryan Dahl 认为不⽤掌握复杂的服务端语⾔,⽤JS这种简单的语⾔⼀样可以编写出⾼性能的服务端程序,从易⽤性上来说,这简直甩J2EE, Servlet⼏条街,搞过服务端开发都知道JAVA的世界有多么的五彩缤纷、百花齐放百家争鸣,⽽且Node.js是事件驱动的,响应式的编程,做过JS开发的都知道,要注册事件,等待回调,这⼀个⾮阻塞,响应式的特点也被Node.js继承了,因为这些特点,Node.js的性能⾮常好,从这个⾓度说Node.js简直就是神⼀样的存在,从现在的应⽤情况来说也确实是,现在中⼩企业中有不少直接基于Node.js编程,尤其⼀些⼩程序、简单⽹站的后台,很多云服务提供商(⽐如腾讯、阿⾥云)都提供直接基于Node.js的执⾏环境。把node.js吹的这么⽜逼,它是不是就没有缺点了呢,显然不是的,z,否则哪有今天Vert.x的事。这所谓成也萧何败也萧何,成功源⾃
于JS⼴⼤的⽤户,简单明了的语法,但也由于JavaScript单线程的原因,如果有长时间运⾏的计算(⽐如⼤循环),将会导致CPU时间⽚不能释放,使得后续I/O⽆法发起,只⽀持单核CPU,不能充分利⽤CPU, 可靠性低,⼀旦代码某个环节崩溃,整个系统都崩溃。
看到Node.x的名字,就知道这货和Node.js渊源很深,是的,它的诞⽣就是想解决node.js的单线程和单CPU核的问题,它怎么解决的呢,我简单的说,它基于JVM开发了⼀系列⼯具包,注意它是具有JVM的,这意味着你的运⾏环境需要JVM,同时JVM是可以⽀持多线程和多核CPU 的所以天然的解决了单线程和单核CPU的问题。但了解JVM的同学都知道,JVM不是JAVA虚拟机么,咋⼜和Java script扯上关系了,是的我觉着这就是Vert.x天才的地⽅,Vert.x的底层执⾏环境依赖于JVM,但是他的编程接⼝⽀持多语⾔(官⽅叫法Polyglot),它提供了JavaScript的编程接⼝,让JS的爱好者,仍然向写JS⼀样写服务器的代码,但是运⾏的引擎是JVM,它依然有Node.js该具有优势,⽐如事件驱动,⾮阻塞。但它运⾏在JVM之上,它具有了多线程、⽀持多核的优点,因此JS在Vert.x上的性能简直就是⼤爆发。不仅如此Vert.x还⽀持
Java, JavaScript, Groovy, Ruby, Ceylon, Scala and Kotlin 这些语⾔。
⼯具包,它不是框架或容器,      说了半天,Vert.x到底是什么?⼀万⼈⼼中有⼀万个哈姆雷特,每个⼈的认识也不同,在我看来Vert.x是⼀组⼯具包,
它不像MVC框架,也不像我们熟知的Spring, Struts等编程框架,约定了我们编写程序的框架,它仅提供⼯具包,如果更精确的说是事件驱动的⾮阻塞⼯具包,为我们提供很多有⽤的模块,来简化应⽤的创建⽅式,尤其是异步⾮阻塞程序。
三、为什么⽤Vert.x,它有什么好处?
看到这⾥,你是不是想,不过是个⼯具包⽽已,不就是个Utils,Arrays,Collections这类⼯具包吗,如果是这样,那就太⼩看它了。它有如下优势使其⼜不仅仅是个⼯具包:
Vert.x是事件驱动且⾮阻塞的。 这意味着您的应⽤程序可以使⽤少量内核线程来处理⼤量并发。 Vert.x使您的应⽤程序可以使露底⽤最少的硬Vert.x是事件驱动且⾮阻塞的struts框架是干什么的
件进⾏扩展,尤其在处理web程序上的性能⽐spring MVC等异步程序⾼出不少(后⾯逐步补充⼀些测试数据)。
多语⾔,你可以将Vert.x与多种语⾔⼀起使⽤包括Java,JavaScript,Groovy,Ruby,Ceylon,Scala和Kotlin,Vert.x不偏好任何语⾔,你多语⾔,
可以根据⼿头的任务和团队的技能来选择所需的语⾔。
Vert.x⾮常灵活-⽆论是简单的⽹络实⽤程序,复杂的现代Web应⽤程序,HTTP / REST微服务,⼤容量事件处理还是功能完善的后端消息总线Vert.x⾮常灵活
应⽤程序,Vert.x都是⾮常合适的选择。Vert.x被许多不同的公司使⽤,⽐如在线视频全球第三的在线视频⽹站hulu,国内的笔者供职的华为等,详细可以上VERTX的官⽅⽹站,笔者就不在赘述。⾏业从从实时游戏到银⾏业务,以及介于两者之间的所有业务。
Vert.x轻巧
Vert.x轻巧-Vert.x内核的⼤⼩约为650kB。
Vert.x是模块化的-当您需要更功能时,只需添加所需模块即可。
Vert.x是模块化的-
Vert.x使⽤简单,但提供的功能并不简单。 Vert.x允许你地创建功能强⼤的应⽤程序。
Vert.x使⽤简单
Vert.x是创建轻量级,⾼性能,微服务的理想选择,笔者所在的单位华为,已经在⼀些业务⼤规模使⽤Vert.x作为边缘接⼊服务器,该服务器Vert.x是创建轻量级,⾼性能,微服务的理想选择
收到⽤户请求以后,负责授权、签权和路由转发,效果⾮常不错。
四、⼩节
先写到Vert.x从哪⾥来,它能⼲什么,能帮我们解决什么问题,后⾯逐步分析Vert.x的原理,为什么⾼性能和怎么应⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。