写点什么

Vert.x 3.3.0 增强了网络、微服务、测试等特性

  • 2016-07-04
  • 本文字数:1482 字

    阅读完需:约 5 分钟

Vert.x 发布了其工具集的 3.3.0 版本。该工具集用于基于 JVM 构建反应式、分布式、多语言应用程序。

该版本提供了大量的新特性和改进,下面将介绍其中最重要的内容。

网络

Vert.x 3.3.0 内置支持 HTTP2,允许开发人员创建 HTTP2 客户端和服务器,包括 H2C 和 HTTP2 push。

HTTP/2 是一个帧协议,使用帧表示 HTTP 请求和响应。该版本允许应用程序在请求上使用 customFrameHandler 方法接收自定义帧,每次有自定义帧到达时,该方法都会被调用。下面是文档中提供的一个例子:

复制代码
request.customFrameHandler(frame -> {
System.out.println("Received a frame type=" + frame.type() +
" payload" + frame.payload().toString());
});

该版本还新增了对 Socks5 和 HTTP 代理的支持,允许用户在配置 TCP 和 HTTP 客户端时配置代理设置。

在 Java 中,DNS 域名解析是一个阻塞事务,使用一个比较慢的 DNS 服务可能会长时间阻塞 Vert.x 事件循环,这与 Vert.x 的宗旨不符:“永不阻塞事件循环”。为了避免这种情况,Vert.x 3.3.0 集成了一个异步 DNS 解析器。现在,当创建 HTTP 客户端或者 TCP 客户端时,主机名解析会异步进行。在 TCP 和 HTTP 服务器初始化时也会用到这个异步解析器。

Vert.x 事件总线是 Vert.x 应用程序的骨架。它允许 Vert.x 应用程序的不同部分通过消息进行通信。以前,用户是无法对这类通信的 TCP 层面进行配置的,但在 3.3.0 版本中,你可以配置通信的所有层面,包括 SSL,因此,你可以通过事件总线安全地交换消息。

集成

Vert.x 应用程序通常会集成进更大的系统,Vert.x 3.3.0 改进了 Vert.x 与系统其他部分的交互方式。首先,它提供了同 Apache Camel 的桥接功能,后者是一个流行的集成框架,提供了超过 100 个组件来连接各种应用程序。

Vert.x 3.3.0 提供了一个 RabbitMQ 客户端、一个 AMQP 1.0 客户端和桥接器。AMQP 1.0 是一种流行的跨平台消息协议,可以广泛应用于多种场景。

鉴于安全是任何互联网应用程序的一个核心问题,Vert.x 3.3.0 增加了对 OAuth 2 身份验证机制的支持,因此,你现在可以轻松地将应用程序连接到任何 OAuth 2 提供商,比如 Google、LinkedIn、Github、KeyCloak、Twitter 和 Facebook。

微服务

自创建之初,Vert.x 就成为了微服务架构的先驱,但有关微服务的实践已经发生了变化,在 Vert.x 3.3.0 中,我们提供了如下两个特性:

  • 服务发现
  • 断路器

服务发现是一种提升服务位置透明度的方法;服务是在运行时发现的,服务位置不需要硬编码。使用 Consul 或 Kubernetes 可以扩展服务发现的支持环境。

Vert.x 总是将故障作为一等公民,但有时候,你需要更为高级的故障管理,尤其是要避免对(故障)服务施加过大的压力。针对这种情况,Vert.x 提供了自己的断路器模式实现。

监控

Vert.x 3.3.0 还扩展了收集的指标集合。当然,这为 HTTP2 提供了支持,但它还让更好地监控由 Vert.x 管理的线程成为可能。例如,现在可以监控工作队列了,这样就可以对它的大小进行配置以满足你的需求。

此外,为了改进调优功能,JDBC 连接池还增强了反馈指标。

使用 Vert.x 编程

Vert.x 3.3.0 还改进了开发模型,包括改进用于并行执行任务的 Futures 类的构成,简化了异步操作的链接。

应用程序测试至关重要,经过改进的 Vert.x Unit 允许使用任何断言框架。你不必再局限于由TestContext提供的断言;你可以使用 Hamcrest、 AssertJ 或 Rest-Assured。

上述只是其中的部分特性和改进。 Vert.x 3.3.0 提供的其他特性和改进还有许多,包括 JDBC 批处理支持、Redis geo 指令,等等。要了解更多信息,请查看 Vertx.io 网站。

查看英文原文 Vert.x 3.3.0 Features Enhanced Networking Microservices, Testing and more

2016-07-04 19:003346
用户头像

发布了 1008 篇内容, 共 430.3 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

源码详解数据结构Linked List

华为云开发者联盟

Java ArrayList 框架 linkedlist 双向链表

Java培训JVM 高频面试题

@零度

JVM JAVA开发

液冷数据中心如何构建,蓝海大脑液冷技术保驾护航

GPU算力

液冷服务器

VuePress 博客之 SEO 优化(二)重定向

冴羽

Vue 前端 vuepress SEO 重定向

天翼云中南数字产业园落地长沙“天心数谷”初具雏形

天翼云开发者社区

微博评论高性能高可用计算架构

李大虾

#架构实战营 「架构实战营」

【堡垒机】2022年云堡垒机品牌排名大比拼!

行云管家

云计算 网络安全 堡垒机 企业安全

对话|鲜丰水果:“看不见”的门店数字化

阿里云云效

云计算 阿里云 云原生 持续交付 数字化运维

沈阳飞桨领航团Meetup邀请你来,探索AI如何赋能智慧城市

百度大脑

云原生技术赋能ISV实现应用现代化

York

云原生

Rust基本概念

Shine

读书笔记 rust

web前端培训Node.js和JavaScript的关系

@零度

JavaScript node.js 前端开发

在页面中直接嵌入vue-sfc的方法

CRMEB

全运会开幕!天翼云全力打造“智慧赛事”

天翼云开发者社区

它来了,它来了!开源圈 KOL 的江湖对谈第二季要来了!

OpenTEKr

开源 程序员人生 开源社区 开源软件 优秀开源项目

云管平台提供的功能一般包括哪些?采购需求主要是什么?

行云管家

云计算 企业上云 云管平台 云管理

AI+生物计算:用计算机视觉技术理解细胞生命

百度大脑

图数据库实操:用 Nebula Graph 破解成语版 Wordle 谜底

NebulaGraph

数据库 开源 图数据库 分布式图数据库

为什么要进行企业知识管理,这三个重点问题要明确

小炮

观点丨新经济 DTC 转型,一个简单而强大的数据平台至关重要

PingCAP

4个迭代,从批量交付到持续交付转型

阿里云云效

云计算 阿里云 云原生 研发团队 研发

加密市场普跌 虎符交易所平台币HOO却能连续2个月逆势上涨

区块链前沿News

Hoo 虎符交易所 平台币

创新的力量天翼云推动科技创新技术实践落地

天翼云开发者社区

从“半部电台”到“云监工” 天翼云助力红色电信启航新征程

天翼云开发者社区

测试在项目流程中的那些事儿

有道技术团队

缓存最关心的问题是什么

华为云开发者联盟

Java 缓存 堆内存 缓存命中率 回收策略

【C语言】猜数字小游戏

謓泽

3月月更

OpenVSCode云端IDE加入Rainbond一体化开发体系

北京好雨科技有限公司

微服务中台技术之视频处理

小江

架构 ffmpeg 视频处理 电商系统

2. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml

MASA技术团队

昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!

Geek_32c4d0

昇腾

Vert.x 3.3.0增强了网络、微服务、测试等特性_Java_Clement Escoffier_InfoQ精选文章