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实例停止。

  • 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

  • JDK: openjdk 11
  • IDE: IntelliJ IDEA Community 2020.1
  • 数据库: MySql8 & PostgreSq10

选择web 和mysql客户端

点击 Generate Project 下载生成的工程

主函数

添加启动类

注意事项:

1、jdk需要版本为 jdk11

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

Original: https://www.cnblogs.com/fb010001/p/15905037.html
Author: 方斌
Title: vert.x-快速入门

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586187/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JuiceFS 缓存预热详解

    缓存预热是一个比较常见的概念,相信很多小伙伴都有所了解。对于 JuiceFS 来说,缓存预热就是将需要操作的数据预先从对象存储拉取到本地,从而获得与使用本地存储类似的性能表现。 缓…

    Linux 2023年6月14日
    087
  • Docker 环境 Nacos2 MySQL8

    本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据。 1 拉取镜像 1.1 创建目录 在硬盘上创建 nacos 的有…

    Linux 2023年6月7日
    098
  • go语言接口

    接口在底层的实现有两个部分:type 和 data。 在源码中,显式地将 nil 赋值给接口时,接口的 type 和 data 都将为 nil。此时,接口与 nil 值判断是相等的…

    Linux 2023年6月13日
    067
  • 前端数据提交给后端之HTML表单简单剖析

    写在开篇 什么是表单呢?当前端想要提交数据给后端,怎么搞?那么在前端开发中,表单是常用的手段,比如常见的场景有:登录框、账号注册页、主机信息录入CMDB等等场景都是需要表单。那么在…

    Linux 2023年6月7日
    098
  • LVM逻辑卷与磁盘配额

    一、LVM逻辑卷 1、LVM概述 LVM(Logical Volume Manager,逻辑卷管理)重点在于可以弹性地调整文件系统的容量,需要文件的读写性能或是数据的可靠性,LVM…

    Linux 2023年6月6日
    0105
  • 爱快在PVE下不定时反复重启死机的解决方法

    太长不看版本: 爱快3.6.X在PVE乃至于ESXI下都存在一定的兼容问题 ! 详细情况: 如题,使用爱快版本为3.6.3 x64 Build20220407113364,底层虚拟…

    Linux 2023年6月13日
    0177
  • go-结构体内存布局

    方式一:通过 var 声明结构体 在 Go 语言中当一个变量被声明的时候,系统会自动初始化它的默认值,比如 int 被初始化为 0,指针为 nil。 var 声明同样也会为结构体类…

    Linux 2023年6月13日
    0101
  • windows server实现AD域对接

    安装两台windows server虚拟机 选择自定义 默认兼容 选择2012镜像 输入密钥 名字位置自己选择 默认 选择4个处理器 内存4G够用 选择仅主机网络 默认 创建磁盘 …

    Linux 2023年6月8日
    098
  • Pytorch的类(nn.Module的子类)中的forward函数

    使用 直接通过类的实例对象就可以向类中的forward函数进行参数的传递(当然也可以通过调用forward函数进行传参) import torch.nn as nn class M…

    Linux 2023年6月7日
    0119
  • 高通平台如何避免误入FFBM模式

    前面两篇博客分别介绍了通过fastboot和QFIL工具退出FFBM模式的方法。虽然售后的同学可以这么指导用户做恢复,但步骤多操作也麻烦,且属于事后处理,如果大面积高概率地出现,会…

    Linux 2023年6月7日
    098
  • The remote debugger is older than this version of Visual Studio 2019, and Visual Studio is no longer compatible with it. Upgrade your remote debugger to match Visual Studio.

    之前一直使用VS2019来打包到Xbox上,但是这两天有一个项目,只能用2017部署,于是下载了vs2017,然后这个2017的项目顺利打包到Xbox,但是2019的项目却部署失败…

    Linux 2023年6月13日
    073
  • 20191223-Exp3-免杀原理

    Exp3-免杀原理 姓名:张俊怡 学号:20191223 课程:网络对抗技术 一、实践内容 方法 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件 veil,加…

    Linux 2023年6月8日
    0130
  • 我叫MongoDb,不懂我的看完我的故事您就入门啦!

    这是mongo基础篇,后续会连续更新4篇 大家好我叫MongoDb,自从07年10月10gen团队把我带到这个世界来,我已经13岁多啦,现在越来越多的小伙伴在拥抱我,我很高兴。我是…

    Linux 2023年6月14日
    0123
  • MySQL启动报:[ERROR] The server quit without updating PID file

    修改配置后 MySQL启动不了,报错: 看见这个不要惊慌,先把刚才修改的配置注释掉,看是不是配置有误!大部分是手误造成。 如果不行,再尝试一下方法: 解决方法 : 给予权限,执行 …

    Linux 2023年6月13日
    080
  • Shell实现:基本功能

    独立博客阅读地址:https://panqiincs.me/2017/02/26/write-a-shell-basic-functionality/ Shell的功能 Shell…

    Linux 2023年6月7日
    0132
  • Redis源码学习

    为什么要阅读Redis源码? 主要原因就是『简洁』。如果你用源码编译过Redis,你会发现十分轻快,一步到位。其他语言的开发者可能不会了解这种痛,作为C/C++程序员,如果你源码编…

    Linux 2023年5月28日
    094
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球