Eclipse Vert.x 是一个微服务开发框架,基于事件和异步,依托于全异步 Java 服务器 Netty,并扩展了很多其他特性,以其轻量、高性能、支持多语言开发而备受开发者青睐。
Eclipse Vert.x 版本 4.5.4 现已发布。一些弃用和破坏性变更包括:
Vert.x Core
TCP 客户端 TLS 配置的破坏性变更
https://github.com/eclipse-vertx/vert.x/pull/5117
NetClient
的TLS 配置不再将默认主机名验证算法设置为空字符串,而是客户端的用户必须使用非空字符串明确配置主机名验证算法。
// Before NetClient client = vertx.createNetClient(new NetClientOptions().setSsl(true).setTrustOptions(trustedCert)); // After String algo = ...; NetClient client = vertx.createNetClient(new NetClientOptions().setSsl(true).setHostnameVerificationAlgorithm(algo).setTrustOptions(trustedCert));
验证算法可以是以下之一:
""
:接受任何可信证书"HTTPS"
:根据 rfc2818 验证任何可信证书"LDAPS"
:根据 rfc2830 验证任何可信证书
因此,Vert.x Redis 客户端 TLS 配置必须在 TCP 客户端选项上明确设置算法。
// Before redisOptions.setNetClientOptions(new NetClientOptions().setSsl(true).setTrustOptions(cert)); // After redisOptions.setNetClientOptions(new NetClientOptions().setSsl(true).setTrustOptions(cert).setHostnameVerificationAlgorithm(algo));
因此,Vert.x MQTT 客户端 TLS 配置必须在 MQTT 客户端选项上明确设置算法。
// Before
mqttClientOptions.setSsl(true).setTrustOptions(cert);
// After
mqttClientOptions.setSsl(true).setTrustOptions(cert).setHostnameVerificationAlgorithm(algo);
Deprecation of HTTP connection shutdown with a timeout
https://github.com/eclipse-vertx/vert.x/pull/5115
弃用HttpConnection#timeout(long)
,替换为HttpConnection#timeout(long, TimeUnit)
// Before connection.shutdown(5 * 1000); // 5 seconds // After connection.shutdown(5, TimeUnit.SECONDS);
更多详情可查看 4.5.4 发行说明。