百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

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

mhr18 2024-12-08 14:49 24 浏览 0 评论

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客户端、一个AMQP1.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网站。

相关推荐

Dubai's AI Boom Lures Global Tech as Emirate Reinvents Itself as Middle East's Silicon Gateway

AI-generatedimageAsianFin--Dubaiisrapidlytransformingitselffromadesertoilhubintoaglob...

OpenAI Releases o3-pro, Cuts o3 Prices by 80% as Deal with Google Cloud Reported to Make for Compute Needs

TMTPOST--OpenAIisescalatingthepricewarinlargelanguagemodel(LLM)whileseekingpartnershi...

黄仁勋说AI Agent才是未来!但究竟有些啥影响?

,抓住风口(iOS用户请用电脑端打开小程序)本期要点:详解2025年大热点你好,我是王煜全,这里是王煜全要闻评论。最近,有个词被各个科技大佬反复提及——AIAgent,智能体。黄仁勋在CES展的发布...

商城微服务项目组件搭建(五)——Kafka、Tomcat等安装部署

1、本文属于mini商城系列文档的第0章,由于篇幅原因,这篇文章拆成了6部分,本文属于第5部分2、mini商城项目详细文档及代码见CSDN:https://blog.csdn.net/Eclipse_...

Python+Appium环境搭建与自动化教程

以下是保姆级教程,手把手教你搭建Python+Appium环境并实现简单的APP自动化测试:一、环境搭建(Windows系统)1.安装Python访问Python官网下载最新版(建议...

零配置入门:用VSCode写Java代码的正确姿

一、环境准备:安装JDK,让电脑“听懂”Java目标:安装Java开发工具包(JDK),配置环境变量下载JDKJava程序需要JDK(JavaDevelopmentKit)才能运行和编译。以下是两...

Mycat的搭建以及配置与启动(mycat2)

1、首先开启服务器相关端口firewall-cmd--permanent--add-port=9066/tcpfirewall-cmd--permanent--add-port=80...

kubernetes 部署mysql应用(k8s mysql部署)

这边仅用于测试环境,一般生产环境mysql不建议使用容器部署。这里假设安装mysql版本为mysql8.0.33一、创建MySQL配置(ConfigMap)#mysql-config.yaml...

Spring Data Jpa 介绍和详细入门案例搭建

1.SpringDataJPA的概念在介绍SpringDataJPA的时候,我们首先认识下Hibernate。Hibernate是数据访问解决技术的绝对霸主,使用O/R映射(Object-Re...

量子点格棋上线!“天衍”邀您执子入局

你是否能在策略上战胜量子智能?这不仅是一场博弈更是一次量子智力的较量——量子点格棋正式上线!试试你能否赢下这场量子智局!游戏玩法详解一笔一画间的策略博弈游戏目标:封闭格子、争夺领地点格棋的基本目标是利...

美国将与阿联酋合作建立海外最大的人工智能数据中心

当地时间5月15日,美国白宫宣布与阿联酋合作建立人工智能数据中心园区,据称这是美国以外最大的人工智能园区。阿布扎比政府支持的阿联酋公司G42及多家美国公司将在阿布扎比合作建造容量为5GW的数据中心,占...

盘后股价大涨近8%!甲骨文的业绩及指引超预期?

近期,美股的AI概念股迎来了一波上升行情,微软(MSFT.US)频创新高,英伟达(NVDA.US)、台积电(TSM.US)、博通(AVGO.US)、甲骨文(ORCL.US)等多股亦出现显著上涨。而从基...

甲骨文预计新财年云基础设施营收将涨超70%,盘后一度涨8% | 财报见闻

甲骨文(Oracle)周三盘后公布财报显示,该公司第四财季业绩超预期,虽然云基建略微逊于预期,但管理层预计2026财年云基础设施营收预计将增长超过70%,同时资本支出继上年猛增三倍后,新财年将继续增至...

Springboot数据访问(整合MongoDB)

SpringBoot整合MongoDB基本概念MongoDB与我们之前熟知的关系型数据库(MySQL、Oracle)不同,MongoDB是一个文档数据库,它具有所需的可伸缩性和灵活性,以及所需的查询和...

Linux环境下,Jmeter压力测试的搭建及报错解决方法

概述  Jmeter最早是为了测试Tomcat的前身JServ的执行效率而诞生的。到目前为止,它的最新版本是5.3,其测试能力也不再仅仅只局限于对于Web服务器的测试,而是涵盖了数据库、JM...

取消回复欢迎 发表评论: