• vert.x快速入门


    一、vert.x介绍
    • vert.x是Eclipse软件基金会顶级java开源项目之一,它基于netty的、运行在jvm之上的、支持多种编程语言的高性能异步、非阻塞、响应式全栈java web框架。它在techempower.com网站多项性能测试中占据java语言榜首。官网地址如下:https://vertx.io/
    • Vert.x采用单一组件结构设计,即Verticle,所有业务功能都使用Verticle这种单一的组件编程完成,克服以往应用框架和平台包含众多类型的组件模式,使得开发人员能极快适应Vert.x编程,加快项目的开发速度。
    • Vert.x中所有的Verticle组件都是完全解耦合的,任何组件之间不能直接调用,只能通过在Vert.x的事件总线上发送事件来完成,彻底解决了传统应用系统中管理组件间相互依赖的复杂性,最终使得Vert. x应用编程极其简单高效。
    • Vert.x使用单线程事件驱动的异步工作模式,编写Vert.x组件时,不需要考虑复杂的多线程编程难题,并不需要关注线程之间的调用、同步、加锁等繁琐处理编程,简化了编程代码,提高了编程效率。
    • Vert. x通过提供一整套的异步编程API实现异步编程模型,在Vert. x中所有的请求处理都是通过注册事件监听处理器机制完成的。编程TCP处理服务器Verticle,通过注册TCPSocket的数据到达事件监听器,实现数据到达后的回调处理,而不是采用一直等待数据读取的阻塞模式,实现的是非阻塞的异步工作模式。
    • Vert.x的核心运行机制是事件循环,当Vert.x实例启动后,Vert.x框架在每个CPU的内核创建一个事件循环线程。此事件循环线程永不结束,它不断监听出现的各种事件,如事件总线的事件到达WebSocket上的数据接收,HTTP上的请求到达HTTP响应结束,定时器触发等等,并把事件分发到注册了监听此事件的Verticle,再继续监听其他的事件,如此反复直到Vert.x实例停止。
    三、vert.x 与 spring的对比
    • spring是单体架构设计,
    • vert.x面向分布式设计,性能高,在vert.x的概念中,没有MVC,没有AOP,没有ORM。二者的生态框架对比图如下

    vert.x

    spring

    Vert.x Core Spring Framework
    Vert.x Web SpringBoot
    Vert.x Data Access Spring Data Jpa
    Vert.x Reactive Project Reactor
    Vert.x Microservices Spring Cloud
    Vert.x Authentication and Authorisation Spring Security
    Vert.x MQTT Vert.x Messaging
    Spring AMQP
    Vert.x Devops Spring Devops


    • vert.x 与 Spring 支持的编程语言对比
    vert.x spring
    java,Kotlin,JavaScript, Groovy,Ruby,Scala java,Kotlin,Groovy


    四、vert.x 学前准备
    • JDK: openjdk 11
    • IDE: IntelliJ IDEA Community 2020.1
    • 数据库: MySql8 & PostgreSq10
    五、第一个vert.x
    1、在官网生产starter

    https://start.vertx.io/

    image

    选择web 和mysql客户端

    image

    image

    点击 Generate Project 下载生成的工程

    image

    2、把刚刚生成的starter用 idea打开

    主函数

    image

    添加启动类

    image

    注意事项:

    1、jdk需要版本为 jdk11

    2、run 后的地址要正确,和 MainVerticle 类所在package 要对上


    参考:https://www.jianshu.com/p/295e3122b466

    
    
  • 相关阅读:
    面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景
    JAVA 线上故障排查套路,从 CPU、磁盘、内存、网络到GC 一条龙!
    面经分享:看非科班研究生如何转行斩获 ATM 大厂的 Offer ?
    Jmeter JDBC配置
    Jmeter JDBC连接
    js基础用法1
    java实现io读取数据
    mysql语句
    java修改linux文件
    linux永久或临时修改dns
  • 原文地址:https://www.cnblogs.com/fb010001/p/15905037.html
Copyright © 2020-2023  润新知