济南行知网站制作,网站外链建设周期,附近广告公司喷绘刻字,名牌网站设计的图片Vert.x介绍
用官网的一句话来总结#xff1a;Vert.x是用于在JVM上构建响应式应用程序的工具包#xff0c;项目初期的目标是成为“JVM版的Node.js”#xff0c;但是后续的发展逐渐偏离了初期的目标#xff0c;变成了一个给JVM提供量身定制的异步编程基础框架的工具包。 Ver…Vert.x介绍
用官网的一句话来总结Vert.x是用于在JVM上构建响应式应用程序的工具包项目初期的目标是成为“JVM版的Node.js”但是后续的发展逐渐偏离了初期的目标变成了一个给JVM提供量身定制的异步编程基础框架的工具包。 Vert.x的本质 重点是处理异步事件这些事件主要来自非阻塞IO处理事件的线程模型是事件循环 Vert.x是一个工具包而不是一个框架Vert.x没有给应用程序预定义一个基础因此可将Vert.x作为一个库自由的用在更大的框架里面。Vert.x应用程序可以被看作是一系列模块的组合这些模块刚好提供了你所需的东西不需要的就不要去依赖 Vert.x的核心项目Vertx-Core提供了用于异步编程、非阻塞IO的流传输的API还提供了针对网络协议的如TCP、UDP、DNS、HTTP的便捷的支持 一组由社区支持的异步功能模块是Vert.x技术栈的一部分例如Vertx-web、Vertx-redis等基于这些功能模块可以构建各种各样的应用程序 Vert.x支持了大多数流行的JVM语言例如JavaScript、Ruby、Kotlin、Scala、Groovy等开发人员可以在同一个Vert.x应用程序中混合使用不同的编程语言只要它们是Vert.x支持的。 回调是Vert.x用来将异步事件通知给程序代码并将其传递给某些处理程序的主要手段如果将回调和Lambda表达式结合起来使用则可用相对简洁的方式来定义事件处理程序 同类型工具介绍
Node.js
事件驱动的运行时环境、用于编写异步的JavaScript应用程序。基于Google Chrome 的V8 JavaScript引擎。主要区别有Vert.x默认运行多个事件循环同时Vert.x运行的JVM具有更加优秀的JIT编译器和垃圾收集器。同时Vert.x也支持JavaScript。
Akka
Actor模型的忠实实现Akka也运行在JVM上面主要提供的是Scala API。
Spring框架中的Webflux
基于Reactor模式来进行实现
Quarkus
开发Java应用程序的新框架有它开发的应用程序尤其适合在K8s等容器环境中运行
Netty
为JVM提供了非阻塞的IO API在原始的NIO API的基础上提供了一层抽象并且修复了一些特定平台的错误Netty也提供了自己的线程模型主从Reactor多线程
Python和Ruby
提供了非阻塞的IO库也可以用他们来构建响应式系统
Go、Rust、Swift
本地编程语言具备构建高度可拓展的应用程序的能力也可以用于创建响应式应用程序
总结
异步编程可以让我们再单个线程上复用多个网络连接相比于阻塞式IO即便是简单的协议和同样的功能代码非阻塞的IO实现也更加复杂事件循环和Actor模式简化了异步事件的处理响应式系统既具备伸缩性、有具备回弹性即使负载很高系统的响应延迟也可以保持一致Vert.x是用于在JVM上编写异步和响应式应用程序的一种高效的工具包 Actor模式是一种并发模型它通过消息传递进行合作。在Actor模型中Actor是计算实体能够回应接收到的消息创建更多的Actor发送更多的消息并决定如何回应下一个接收到的消息。由于没有对消息的时序做规定Actor模式是一种异步模型。同时Actor之间不共享状态如果想获取其他Actor的状态只能通过消息请求的方式。