Vertx入门简介

前言

VertX这项技术其实有年头了。笔者本人是非常看好它,当前笔者是一位Java程序员,因为国内基本都是Spring生态。以至于大部分人,没有Spring Boot就不会开发了。这里不是说Spring Boot有什么问题,只是觉得不应该被Spring禁锢我们程序员得思维。
下面带大家来了解VertX。进入之前,请忘记Spring。忘记了Spring你就学会了VertX

注:Vert.X不是替代Spring。它也有它的缺点。具体的利弊自己权衡。如果觉得写的不错,点个赞吧~

举例

Vert.X和Spring的区别,我用一个例子说一说。就拿我们去餐厅吃饭。
Spring:进入餐厅 -> 服务员点餐 -> 服务员去做饭 -> 你坐着等饭来(什么都不能干,只能瞪眼等着服务员的菜) -> 服务员把饭端来。
Vert.X:进入餐厅 -> 服务员点餐 -> 服务员将菜单给厨师 -> 你去忙其他事情(逛商场、玩手机) -> 厨师炒完菜给服务员 -> 服务员通知你饭好了,回来吃。

这一个小例子基本就能说明问题。

简介

Eclipse Vert.x是eclipse旗下的一个开源项目。Eclipse Vert.x是基于事件驱动和非阻塞的(基于netty之上,netty是一个天然的纯异步容器),换句话说这框架适合高并发的处理。
官网地址:https://vertx.io/
官网中文地址:http://vertxchina.github.io/vertx-translation-chinese/
Vert.x非常灵活 ,无论是简单的网络实用程序,复杂的现代Web应用程序,HTTP / REST微服务,大容量事件处理还是完整的后端消息总线应用程序,Vert.x都非常适合。比如游戏后端开发、银行业务开发等等。

Vert.X 中没有MVC、IOC、AOP、ORM这些概念,而是用自己的一套解决方案处理。
注:学习Vert.X之前,忘记Spring的所有思想。才能学会Vert.X

注:具体Vert.X有多牛逼,可以参考techempower网的排名。
网址:https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=json

概念

1、verticle是vert.x中可被部署运行的最小代码块,可以理解为一个verticle就是一个最小化的业务处理引擎。 一个应用程序可以是单个verticle或者由EventBus通信的多个verticles构成。
2、verticle被发布部署后,会调用其内部的start方法,开始业务逻辑处理,完成后会调用stop方法,对该代码块执行销毁动作。
3、Verticles在Vert.x实例中运行。 一个Vertx可以承载多个verticles,每个Vert.x实例在其私有的JVM实例运行。 一台服务器可以运行一个或多个Vert.x实例(建议运行Vertx实例的数量和CPU核数相关)。
4、一个Vert.x实例,保证其承载的verticles实例总是在同一个线程执行, 并发Vert.x 是单线程的。

Verticle的三种形态

1、Standard verticles:标准Verticles
代码表现形式:

Vertx.vertx().deployVerticle(new WebClientVerticle());

2、Worker verticles:工作Verticles
代码表现形式:

DeploymentOptions options = new DeploymentOptions().setWorker(true);
Vertx.vertx().deployVerticle(new WebClientVerticle(), options);

3、Multi-threaded worker verticles:多线程-工作Verticles

结语

简单来说,Vert.X是一个异步响应式框架。是基于Netty实现的。Netty的性能就不用我多赘述了。

你可能感兴趣的:(java,spring,开发语言)