`

Vert.x 基于事件和异步的解决方案

 
阅读更多

a

 

Vert.x框架基于事件和异步,依托于全异步Java服务器Netty,并扩展了很多其他特性,以其轻量、高性能、支持多语言开发而备受开发者青睐。

 

一个Vert.x有一个或多个事件循环线程组成,线程最大数量为主机有效的CPU核数。

 

Vert.x的事件模型,有如下几个特点:

1.非阻塞处理请求,异步执行阻塞程序,保证了请求处理的高效性。

2.使用Event Bus事件总线来进行通讯,可以轻松编写出分布式、松耦合、高扩展性的程序。

3.使用Event Bus事件总线是Vert.x真正实现了多语言支持的基础. Java、JavaScript、Ruby、Python;已经支持了Postgres、MySQL、MongoDB、Redis等常用组件.

 

异步无锁编程——经典的多线程编程模型能满足很多Web开发场景,但随着移动互联网并发连接数的猛增,多线程并发控制模型性能难以扩展,同时要想控制好并发锁需要较高的技巧,目前Reactor异步编程模型开始跑马圈地,而Vert.x就是这种异步无锁编程的一个首选;

对各种IO的丰富支持——目前Vert.x的异步模型已支持TCP、UDP、FileSystem、DNS、EventBus、Sockjs等;

 

 

别人的一些实践:

 https://segmentfault.com/a/1190000011763020 

https://www.jianshu.com/p/fbe0430959e8 利用Vertx构建简单的API 服务、分布式服务

 

Vertx-Java命令行运行

 

//EchoServer.java
import io.vertx.core.AbstractVerticle;
public class EchoServer extends AbstractVerticle {
    public void start() {
        vertx.createHttpServer().requestHandler(req -> {
            req.response()
            .putHeader("content-type", "text/plain")
            .end("Hello from Vert.x!");
        }).listen(8080);
    }
}

 

vertx run EchoServer.java 
curl http://localhost:8080/

 

Vertx-Java main方法方式运行

 

//pom.xml
...
<dependencies>
    <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-core</artifactId>
        <version>3.1.0</version>
    </dependency>
</dependencies> 

 

//App.java
import io.vertx.core.Vertx;
public class App {
    public static void main(String[] args) {
        Vertx.vertx().createHttpServer().requestHandler(req -> req.response().
        end("Hello World!")).listen(8080);
    }
}

 

In IDE, Run AS Java Application
curl http://localhost:8080/

 

 

 

 

 

b

分享到:
评论

相关推荐

    NetDiscovery 是一款基于 Vert.x、RxJava 2 等框架实现的通用爬虫框架_中间件。.zip

    NetDiscovery 是一个基于 Vert.x 和 RxJava 2 构建的通用爬虫框架,它为开发者提供了一套高效、灵活的网络数据抓取解决方案。Vert.x 是一个轻量级的事件驱动框架,常用于构建高性能的分布式应用,而 RxJava 2 是一个...

    阅读3服务器版,桌面端,iOS可用。后端 Kotlin + Spring Boot + Vert.x + Corou.zip

    4. **Coroutine**: Coroutine是Kotlin为解决异步编程难题提供的解决方案。与传统的线程模型相比,Coroutine更加轻量级,可以避免线程上下文切换带来的开销。在阅读应用中,Coroutine可能用于处理I/O密集型任务,如从...

    基于Vert.x和RxJava 2构建通用的爬虫框架的示例

    总的来说,这个基于Vert.x和RxJava 2的爬虫框架利用了两者的优势,提供了一种高效、灵活且易于扩展的爬虫解决方案。通过事件驱动和反应式编程,它能够轻松处理高并发的网络爬取任务,同时保持代码的简洁性和可维护性...

    vertx-contextual-logging:Vertx应用程序的上下文日志记录

    由于Vert.x基于事件循环模型,异步日志记录可以避免阻塞事件循环,从而保持应用的高并发性能。"vertx"自然是指Vert.x框架本身,而"contextual"强调了与当前执行上下文相关的日志信息。"Java"表明这个讨论是针对Java...

    VX-API-Gateway-1.0.3.rar

    Vert.x Gateway是基于Vert.x平台的一个组件,它提供了轻量级、高性能的API网关解决方案,适用于现代微服务架构。 【标签】"vertex" 指的是Vert.x,这是一个用于构建反应式应用程序的Java库,它支持多种编程语言,...

    分布式游戏服务端 Vertx3

    - **Event Loop(事件循环)**:Vert.x的核心是事件驱动模型,每个Verticle(Vert.x中的可部署单元)都运行在自己的事件循环上,负责处理事件和回调。 - **Verticle(微服务实例)**:是Vert.x中的基本部署单元,...

    sonar-plugin-api-3.6.2.zip

    【描述】"mod-redis-io.zip,用于Vert.xa的异步Redis总线模块用于Vert.x的同步总线模块" 提到的是一个基于Vert.x的模块,用于与Redis数据库进行通信。Vert.x是一个轻量级、反应式的Java应用框架,适用于构建高度并发...

    dasein-cloud-openstack-2013.04.6.zip

    7. vert.x 2.x集成JavaMail:提供了更强大和稳定邮件服务的解决方案,支持SSL/TLS等安全特性。 了解并掌握这些知识点,开发者可以更好地利用Dasein Cloud来管理OpenStack环境,并在vert.x应用中实现高效、可靠的...

    Joker微服务容器

    【Joker微服务容器】是基于Vert.x框架构建的一个轻量级服务容器,它与传统的Tomcat服务器有所不同,旨在提供一种更加灵活、高效且适用于微服务架构的解决方案。Vert.x是一个用于构建分布式系统和现代Web应用程序的...

    wiki:vert-x3 组织的维基和问题

    同时,开发者还可以在社区论坛和GitHub问题中找到更多关于Vert.x 3的讨论和解决方案。 综上所述,"wiki:vert-x3 组织的维基和问题"涵盖了Vert.x 3框架的核心概念、使用方法以及社区资源,是开发者深入了解和使用...

    反应式微服务框架ServiceComb设计思想.pptx

    \n\n总之,ServiceComb通过引入反应式微服务架构,结合Vert.x的事件驱动模型,提供了一种高效、可扩展的微服务解决方案。这种设计不仅优化了资源利用,还提升了系统的响应速度,满足了现代企业对于高并发、低延迟...

    请给 Spring Boot 多省些内存.docx

    Spring Cloud作为基于Spring Boot的微服务解决方案,集成了许多组件,如服务发现、API网关、配置中心、服务追踪等,虽然提供了完整的微服务生态系统,但这些组件会进一步增加资源消耗。例如,一个简单的Spring Boot...

    vertx-clojure:用于vertx工具包的轻量级clojure适配器

    总之,vertx-clojure是Clojure开发者进入Vert.x世界的桥梁,它简化了Clojure与Vert.x的集成,让开发者能够利用Clojure的强大功能和Vert.x的高性能事件驱动架构,构建出高效的、响应式的现代应用。无论是构建微服务、...

    vertx-sockjs

    Java社区广泛使用Vert.x,因为其能够提供高性能、高并发的解决方案,并且能够很好地融入现有的Java生态系统,如Spring和JVM服务。 【压缩包子文件的文件名称列表】"vertx-sockjs-master" 暗示这是一个Git仓库的主...

    vrcloud-git:Vertx +代理+ WebsocketSockjsSocket

    7. **事件驱动编程**:Vert.x基于事件驱动编程模型,它使用事件总线(Event Bus)进行组件间的通信。这种模型有利于处理高并发,因为每个任务都在单独的线程中异步执行,避免了线程阻塞。 综上所述,“vrcloud-git:...

    vertx-s3ConfigReader:从s3读取configFile

    Vert.x 是一个轻量级、反应式的事件驱动应用开发框架,它允许开发者以一种高度并发和非阻塞的方式编写异步代码。Vert.x 支持多种编程语言,包括Java,使得开发者可以构建高性能的网络应用,如微服务和API服务器。 *...

    30种java技术框架-方案架构图汇总.zip

    18. **Apache Camel**:企业级集成框架,提供大量连接器用于构建消息传递和ESB(企业服务总线)解决方案。 19. **Apache ActiveMQ**:开源的消息代理,实现JMS(Java消息服务),支持多种协议和多种语言。 20. **...

    netty in action 中文版 高清带目录 来个最便宜的

    总结来说,Netty是一个全面的、异步的事件驱动网络应用框架,它基于Java NIO,提供了易于使用、高性能、高度可扩展和可靠的网络编程解决方案。无论是对Java网络编程的新手还是有经验的开发者,Netty都提供了一个值得...

    jsmrestful

    - **框架与库**: 该项目可能使用了诸如Spring Framework、Apache Camel或Vert.x等框架来简化JMS和RESTful的集成,或者可能有自定义实现。 - **安全考虑**: 由于涉及到网络通信,安全性是重要的考量。可能使用了...

    Mycat2:基于Java IOMySQL代理,基于分片SQL,方解石,简单而快速

    《Mycat2:构建高性能数据库分片解决方案》 Mycat2是一款基于Java的数据库中间件,它作为MySQL的代理,旨在实现大规模数据的...对于需要处理海量数据和高并发场景的开发者来说,Mycat2无疑是一个值得考虑的解决方案。

Global site tag (gtag.js) - Google Analytics