vert.x web开发之route

简介

一个Route包含了一个条件集合,它用这些条件来判断一个http请求或失败是否应该被路由到指定的Handler。

主要方法

Route method(HttpMethod method);

添加一个支持的HTTP方法到该Route中。默认情况下,一个Route匹配所有的HTTP方法,如果指定了任意的HTTP方法后,则该Route只会匹配指定的HTTP方法。

vert.x web开发之router

简介

vert.x web开发中router相当于一个核心的控制器,管理多个具体负责处理请求URL的Route对象,它接受来自HttpServer的请求HttpServerRequest,并将请求路由到第一个匹配的Route上去。

主要方法

static Router router(Vertx vertx)

该方法用来创建一个Router对象。

void accept(HttpServerRequest request)

该方法用来给一个请求提供一个Router。通常的使用方式为:将该对象作为参数传递给HttpServer.requestHandler(Handler)方法中。

1
vertx.createHttpServer(serverOptions).requestHandler(router::accept)

配置 Vert.x 缓存

当 Vert.x 需要从类路径中读取文件(嵌入在 fat-jar 中,类路径中jar文件或其他文件)时,它会把文件复制到缓存目录。背后原因很简单:从 jar 或从输入流读取文件是阻塞的。所以为了避免每次都付出代价,Vert.x 会将文件复制到其缓存目录中,并随后读取该文件。这个行为也可配置。

vertx-启动器

简介

Vert.x Launcher 在 fat-jar 中作为主类,由vertx命令行实用程序调用。它可执行一组命令,如runbarestart

扩展 Vert.x 启动器

您可以通过实现自己的 Command 类来扩展命令集(仅限于Java):

vertx-访问文件系统

Vert.x 中的FileSystem对象提供了许多操作文件系统的方法。

每个Vert.x 实例有一个文件系统对象,您可以使用fileSystem方法获取它。

每个操作都提供了阻塞和非阻塞版本,其中非阻塞版本接受一个处理器 Handler,当操作完成或发生错误时调用该处理器。

以下是文件异步拷贝的示例:

vertx-集群范围锁-计数器

集群范围锁(Lock)允许您在集群中获取独占锁 —— 当您想要在任何时间只在集群一个节点上执行某些操作或访问资源时,这很有用。

集群范围锁具有异步API,它和大多数等待锁释放的阻塞调用线程的API锁不相同。

可使用getLock方法获取锁。

它不会阻塞,但当锁可用时,将 Lock 的实例传入处理器并调用它,表示您现在拥有该锁。

若您拥有的锁没有其他调用者,集群上的任何地方都可以获得该锁。

当您用完锁后,您可以调用 release 方法来释放它,以便另一个调用者可获得它。

vertx-共享数据

共享数据(Shared Data)包含的功能允许您可以安全地在应用程序的不同部分之间、同一 Vert.x 实例中的不同应用程序之间,集群中的不同 Vert.x 实例之间安全地共享数据。

共享数据包括本地共享Map、分布式、集群范围Map、异步集群范围锁和异步集群范围计数器。

重要提示:分布式数据结构的行为取决于您使用的集群管理器,网络分区面临的备份(复制)和行为由集群管理器和它的配置来定义。请参阅集群管理器文档以及底层框架手册。

vertx编程http服务端和客户端

编写 HTTP 服务端和客户端

Vert.x 允许您轻松编写非阻塞的 HTTP 客户端和服务端。

Vert.x 支持 HTTP/1.0、HTTP/1.1 和 HTTP/2 协议。

用于 HTTP 的基本 API 对 HTTP/1.x 和 HTTP/2 是相同的,特定的API功能也可用于处理 HTTP/2 协议。

vertx中的buffer

Buffer

在 Vert.x 内部,大部分数据被重新组织(shuffle,表意为洗牌)成 Buffer 格式。

一个 Buffer 是可以读取或写入的0个或多个字节序列,并且根据需要可以自动扩容、将任意字节写入 Buffer。您也可以将 Buffer 想象成字节数组(译者注:类似于 JDK 中的 ByteBuffer)。

|