Eclipse Vert.x 4.5.11 发布,Java 微服务开发框架

来源: OSCHINA
2024-11-14 13:54:01
AI总结

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

Eclipse Vert.x 版本 4.5.11 现已发布此版本修复了 Netty 中的 CVE-2024-47535。一些弃用和破坏性变更如下:

Vert.x Core

ServerWebSocket handshake API deprecation

https://github.com/eclipse-vertx/vert.x/pull/5387

Server WebSocket API 可以隐式控制握手(例如发送消息)或显式控制握手(接受或任何 WebSocket 交互)。Vert.x 5 完全假定已处理的服务器 WebSocket 已接受其握手。

握手操作被移至服务器握手处理程序,以代替隐式/显式服务器 WebSocket controls。

// Before
server
  .webSocketHandler(ws -> {
    if (shouldAccept(ws)) {
      ws.accept();
      ws.write(frame);
    } else {
      ws.reject();
    }
  });

// After 
server
  .webSocketHandshakeHandler(handshake -> {
    if (shouldAccept(handshake)) {
      handshake.accept();
    } else {
      handshake.reject();
    }
  }).webSocketHandler(ws -> {
    ws.write(frame);
});

Vert.x Codegen

弃用 JsonGen base64 编码基本选项

https://github.com/eclipse-vertx/vertx-codegen/pull/392

源于 Vert.x 3 的 Legacy Buffer base64 encoding stemming 在 Vert.x 4.x 中被弃用。

Vert.x Micrometer Metrics

HTTP PATH metrics don't consistently report a path

https://github.com/vert-x3/vertx-micrometer-metrics/issues/225

HTTP client 和 server metrics tags 中的PATH标签并未一致地报告路径。有时它会报告完整的 URI(包含 host、port 等),有时它会报告带有查询字符串的路径,有时只报告路径。

现在它将始终如一地只报告路径。虽然从技术上讲这是一个破坏性的更改,但在很多情况下它不会影响用户应用程序,因为此标签默认是禁用的。

如果用户应用程序需要先前的 broken behavior,则可以配置 custom tag provider

Vertx vertx = Vertx.vertx(new VertxOptions().setMetricsOptions(
  new MicrometerMetricsOptions()
    .setPrometheusOptions(new VertxPrometheusOptions().setEnabled(true))
    .setServerRequestTagsProvider(req -> {
      String uri = req.uri();
      return Collections.singletonList(Tag.of("path", uri));
    })
    .setClientRequestTagsProvider(req -> {
      String uri = req.uri();
      return Collections.singletonList(Tag.of("path", uri));
    })
    .setEnabled(true)));

更多详情可查看 4.5.11 发行说明以及弃用和破坏性变更

展开阅读全文
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
分享
AI总结
返回顶部
顶部