Vert.X使用笔记(一)

  • 一、开发环境
  • 二、官方文档
  • 三、vert.x概述
    • 1、vertx-core
  • 四、Hello World
    • 1、生成工程
    • 2、打开工程
    • 3、编写启动类
    • 4、启动项目
  • 5、另一种启动方法
  • 四、理解示例程序
  • 五、概念
    • 1、事件驱动
    • 2、非阻塞
    • 3、链式循环处理
    • 4、未来(future)
    • 5、verticle
    • 6、event bus
  • 六、使用案例
    • 1、定时执行
  • 七、插曲
    • Apache Ignite

一、开发环境

  - 框架 VERTX_VER = 3.9.4 - 日志 LOGBACK_VER = 1.2.3   - 语言 GROOVY_VER = 2.4.12    - 数据库连接 HIKARICP_VER = 2.7.2 - 数据库驱动 MSSQLJDBC_VER = 6.2.2.jre8  - 数据库驱动 POSTGRESQL_VERS=42.2.6 - 数据库驱动 HBASE_VER = 1.3.1 - 数据解析 JSON_VERSION=20160810

二、官方文档

官方文档
建议:官方文档形象但不步骤不详细,可以看看这个文档database

三、vert.x概述

是一个基于NETTY的事件驱动框架
包含许多模块

  • vertx-core
  • vertx-web
  • vertx-ignite
  • vertx-tcp-eventbus-bridge
  • vertx-jdbc-client

1、vertx-core

实质:封装了一系列java的API,包含:

  • java tcp server、client;
  • java HTTP server 、client;
  • java Websocket;
  • java eventbus;
  • java file system
  • 等等

四、Hello World

1、生成工程

官方的工程生成器
注意: 1、选择java版本,否则默认java11

2、打开工程

出现maven pom文件报错
解决办法:

<plugins><plugin><groupId>org.apache.maven.plugins</groupId>//添加此行<artifactId>maven-compiler-plugin</artifactId><version>${maven-compiler-plugin.version}</version></plugin>

3、编写启动类

新建一个类 psvm生成主函数
写入以下语句

    Vertx vertx = Vertx.vertx();vertx.deployVerticle(new MainVerticle());

4、启动项目

浏览器打开http://127.0.0.1:8888/

5、另一种启动方法

无需添加主函数,直接使用依赖中的主函数
1、观察pom文件

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version><maven-shade-plugin.version>3.2.4</maven-shade-plugin.version><maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version><exec-maven-plugin.version>3.0.0</exec-maven-plugin.version><vertx.version>4.3.3</vertx.version><junit-jupiter.version>5.7.0</junit-jupiter.version><main.verticle>helloworld.MainVerticle</main.verticle>//这是主vertx程序<launcher.class>io.vertx.core.Launcher</launcher.class>//这是vertx启动程序</properties>
<plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>${exec-maven-plugin.version}</version><configuration><mainClass>io.vertx.core.Launcher</mainClass><arguments><argument>run</argument> //启动命令是run<argument>${main.verticle}</argument>//查看上面prop</arguments></configuration></plugin>

如果是gradle工程

shadowJar {baseName = 'mes-dataaccess'classifier = nullversion = nullmanifest {attributes 'Main-Class': 'Launcher'//启动类attributes 'Main-Verticle': 'MainVerticle'//主处理程序}mergeServiceFiles {include 'META-INF/services/io.vertx.core.spi.VerticleFactory'}
}

可以在IDEA中配置启动选项以启动

然后使用IDEA 启动

四、理解示例程序

package helloworld;import io.vertx.core.AbstractVerticle;
import io.vertx.core.MultiMap;
import io.vertx.core.Promise;
import io.vertx.core.Vertx;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.web.Router;public class MainVerticle extends AbstractVerticle {//vertx对象启动时调用的方法,startPromise是监听对象@Overridepublic void start(Promise<Void> startPromise) throws Exception {//启动时创建一个http serve 监听8888端口 vertx.createHttpServer().requestHandler(req -> {req.response().putHeader("content-type", "text/plain").end("Hello from Vert.x!");}).listen(8888, http -> {//体现了vertx的事件驱动,if (http.succeeded()) {//将startPromise状态置为完成startPromise.complete();System.out.println("HTTP server started on port 8888");} else {startPromise.fail(http.cause());}});}}

五、概念

1、事件驱动

当一些事件发生,vertx会主动发送事件呼叫,例如计时结束、有http请求等,当事件发生,vertx会异步调用

2、非阻塞

vertx本身不会阻塞线程,除非用户设置了阻塞方法,传统的等待使得线程利用率低,并发情况需要多个线程等待,内存消耗大;

3、链式循环处理

vertx实际基于netty netty就有循环处理的概念,vertx将其复用重写,一个事件会经过多到处理程序,每个vertx实例都维护多个事件循环

4、未来(future)

这是vertx4的特性,与netty一致,vertx3使用的回调

5、verticle

相当于一个处理机,一般来说我们直接集成抽象类AbstractVerticle ,重写start、stop方法
start方法在 一个处理机生成时就调用,该方法完成时,Verticle 将被视为已启动
stop方法在 一个处理取消部署时调用,并且当方法完成时,Verticle 将被视为已停止

6、event bus

待续

六、使用案例

1、定时执行

vertx.setPeriodic(1000, -> {...});

定时一秒执行后续程序

七、插曲

Apache Ignite

添加链接描述

Vert.X使用笔记相关推荐

  1. Vert.x学习笔记(一) Vert.x 核心包

    Vert.x是一个事件驱动的JVM上的框架,可以帮助我们构建现代.灵活.可扩展的程序.Vert.x有多种语言的版本,可以用在Java.Kotlin.Scala.Groovy.Ruby等语言上.当然现在 ...

  2. Vert.x 学习笔记

    一.概述 Vert.x(http://vertx.io)是一个基于JVM.轻量级.高性能的应用平台,非常适用于最新的移动端后台.互联网.企业应用架构. Vert.x是基于大名鼎鼎netty的异步的工具 ...

  3. vert.x笔记:4.vert.x中调用spring服务

    evenbus事件总线介绍: 在介绍怎么在vert.x中集成spring服务前,我们要先简单介绍一下什么是vert.x的事件总线. eventbus是vert.x的神经总线,每个vert.x实例维护了 ...

  4. vert.x笔记:3.使用vert.x发布restful接口

    原文及更多文章请见个人博客:http://heartlifes.com vert.x重要概念介绍: 在第2偏笔记中,我们写了第一个vert.x的hello world代码,这里,我们把代码中用到的几个 ...

  5. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  6. 机器学习总结——机器学习课程笔记整理

    机器学习笔记整理 说明 基础点整理 1. 基础数学知识 (1) 一些零七八碎的基础知识 (2) 最优化相关问题 (3) 概率论相关问题 (4) 矩阵相关问题 2. 回归(线性回归.Logistic回归 ...

  7. 深度学习(三十五)异构计算GLSL学习笔记(1)

    异构计算GLSL学习笔记(1) 原文地址:http://blog.csdn.net/hjimce/article/details/51475644 作者:hjimce 最近开始学习深度学习的一些gpu ...

  8. AI学习笔记(十二)物体检测(上)

    AI学习笔记之物体检测(上) 物体检测简介 常见检测网络 IOU TP.TN.FP.FN precision(精确度)和recall(召回率) 边框回归 边框回归具体方法 Selective Sear ...

  9. 西瓜书第三章阅读笔记

    西瓜书第三章阅读笔记 第三章 线性模型 1.机器学习三要素 2.基本形式 3.线性回归 3.1 模型 3.2 策略 3.3 求解算法 4.对数几率回归 4.1 模型 4.2 策略 4.3 求解算法 5 ...

最新文章

  1. 牛腩知识小结-盒子模型
  2. Elasticsearch 100问(上)
  3. PHP 4 中对象的比较
  4. opencv4.0在linux下编译,Ubuntu 18.04源码编译安装OpenCV 4.0步骤
  5. 阿里云官方网站免费套餐怎么抢
  6. pgsql中float4导致java程序精度丢失_Java基础系列02
  7. hashcat 基本使用
  8. 一条SQL引发的“血案”:与SQL优化相关的4个案例
  9. Flash、Ajax各自的优缺点,在使用中如何取舍?
  10. 软件系统设计-13-质量属性
  11. matlab中的imnoise信噪比,matlab语法fn=imnoise(f,'gaussian',0,0.02)是给f添加高斯噪声,其中数值0和0.02分别表示___和___?...
  12. opencv立方体的画法_opencv几何图形画法
  13. 魔百盒CM311-1_S905L3芯片_YST代工_红外蓝牙语音_安卓9.0_线刷固件包
  14. 计算机动漫游戏与制作,计算机动漫与游戏制作标准规范.doc
  15. kodi安卓4.0版及中文插件安装方法
  16. linux命令总结-ls
  17. AMD发布4.06.10.651版芯片组驱动 修复安装器无响应问题
  18. Bad attr `wx... Bad Value with message... uni-app报错合集
  19. Android 刻度表的实现
  20. 书虫小说在线阅读网站

热门文章

  1. 读书《用户体验要素 以用户为中心的产品设计》
  2. MOXA串口网关工作不正常解决方法
  3. WCDMA 是怎么解决电磁波同频段自干扰问题的???
  4. MySQL单表查询练习
  5. vue 实现手风琴折叠面板
  6. 基于SpringBoot2.0 实现的jvm远程监工图形化工具
  7. 省市区下单菜单js插件使用教程
  8. 基于OpenCV的裂缝检测和测量
  9. matlab图片添加噪音
  10. 从此有了自己的爱机 - 阉割版“小黑”