跟菜鸟一起学习vertx

1、什么是vertx

vert.x是Eclipse软件基金会顶级java开源项目之一,它基于netty的、运行在jvm之上的、支持多种编程语言的异步、非阻塞、响应式编程工具集

vert.x支持java,Kotlin,JavaScript, Groovy,Ruby,Scala

2、Vert.x拥有目前最完整的异步生态系统

Vert.x可以开发Web应用,但Vert.x不仅仅是一个Web开发框架,他更像Spring全家桶,是一个技术栈),或者说是一个Vert.x生态体系。在这个体系中,Vert.x提供了一些列配套的异步组件。下面对Vertx生态和Spring生态做一个对比:

项目 Spring Vertx
核心框架 spring-core vertx-core
Web开发 spring-webmvc vertx-web
jdbc框架 spring-jdbc vertx-jdbc-client
redis spring-data-redis vertx-redis-client
微服务 spring-cloud vertx-hazelcast

可以说,很多的spring能做的事情,Vertx也都能实现。在性能上vertx系列也是甩spring几百条街

那么既然如此,Vertx用户群如此小众? 被spring甩几百条街呢?

Vertx的操作是异步的。异步带来了更高的性能,但同时也带来了编码和调试的复杂度,对于追求效率工作的同学来说并不是一件轻松的事

毕竟早点下班比高并发重要...............

Vert.x 入门Hello Wolrd

1.pom文件

        
            io.vertx
            vertx-web
            4.0.2
        

2、创建verticle


import io.vertx.core.AbstractVerticle;
import io.vertx.core.http.HttpServer;
import io.vertx.ext.web.Router;

public class HttpServerVerticle extends AbstractVerticle {
    @Override
    public void start() throws Exception {
        // 创建HttpServer
        HttpServer server = vertx.createHttpServer();
        // 创建路由对象
        Router router = Router.router(vertx);
        //响应请求
        router.route("/").handler(event -> event.end("hello world"));
        // 把请求交给路由处理
        server.requestHandler(router);
      //监听端口
        server.listen(9999).onComplete(event -> {
            if(event.succeeded()){
                System.out.println("服务器启动成功 端口:" + event.result().actualPort());
            }else{
                event.cause().printStackTrace();
            }
        });
    }
}

3、启动

public class Main {
    public static void main(String[] args) {
        Vertx vertx = Vertx.vertx();
        vertx.deployVerticle(new HttpServerVerticle());
}

疑问环节

1、vertx的线程模型是怎么样的? 我此刻在哪?

image.png

你可能感兴趣的:(跟菜鸟一起学习vertx)