Tin tức

Vert.x 5.1 ra mắt hỗ trợ HTTP/3 và QUIC gốc, Đại tu cấu hình

Bản phát hành Vert.x mới nhất mang đến HTTP/3 qua QUIC, lớp Config không phụ thuộc tầng truyền tải, hỗ trợ Jackson 3 và cầu nối gRPC EventBus.

July 2, 2026· 4 min read
Vert.x 5.1 ra mắt hỗ trợ HTTP/3 và QUIC gốc, Đại tu cấu hình

Vert.x 5.1 đã ra mắt và đây là một bản phát hành quan trọng cho bất kỳ ai chạy các dịch vụ JVM phản ứng. Tính năng nổi bật là hỗ trợ HTTP/3 gốc dựa trên QUIC, nhưng bản phát hành cũng mang đến lớp cấu hình mới, tương thích Jackson 3 và cầu nối gRPC EventBus cho phép bất kỳ máy khách gRPC nào giao tiếp với event bus.

HTTP/3 và Máy chủ lai

Vert.x 5.1 bổ sung HTTP/3 qua QUIC (giao thức vận chuyển dựa trên UDP). Các trình xử lý HTTP hiện tại của bạn hoạt động không thay đổi. Bạn có thể khởi tạo máy chủ HTTP/3 thuần túy với HttpServerConfig đặt phiên bản thành HTTP_3. Thú vị hơn là máy chủ lai: một máy chủ duy nhất có thể xử lý HTTP/1.x, HTTP/2 qua TCP và HTTP/3 qua QUIC đồng thời bằng cách liệt kê cả ba phiên bản. Bên trong, nó liên kết một cổng TCP cho các giao thức cũ và một cổng UDP cho QUIC.

Máy khách HTTP/3 hỗ trợ Alternative Services (alt-svc): nó bắt đầu với HTTP/1.1 hoặc HTTP/2, sau đó nâng cấp lên QUIC khi máy chủ quảng bá—không cần cấu hình thủ công.

QUIC như một Giao thức vận chuyển độc lập

QUIC không chỉ dành cho HTTP/3. Vert.x hiện cung cấp API máy chủ và máy khách QUIC hạng nhất dựa trên Netty và QUICHE của Cloudflare. Bạn có các luồng hai chiều/một chiều, quản lý vòng đời luồng, trình xử lý tắt máy an toàn và thậm chí cả datagram không tin cậy theo RFC 9221. Điều này mở ra cánh cửa để xây dựng các giao thức độ trễ thấp tùy chỉnh trên QUIC.

Lớp Cấu hình Mới

Hệ thống phân cấp Options cũ (HttpServerOptions, NetServerOptions) gắn chặt với TCP và không thể mở rộng sạch sẽ sang QUIC. Vert.x 5.1 giới thiệu lớp Config trừu tượng hóa giao thức truyền tải mới cùng với các Options hiện có (không bị loại bỏ). Các cải tiến chính:

  • Tách SSL/TLS — Cài đặt SSL được truyền dưới dạng tham số riêng, không trộn lẫn vào cấu hình truyền tải.
  • Cài đặt theo phiên bản — HTTP/1.1 và HTTP/2 có các lớp cấu hình riêng (ví dụ: Http1ServerConfig, Http2ClientConfig) thay vì một lớp Options nguyên khối.
  • Nhóm các mối quan tâm — Nén, WebSocket, giải mã biểu mẫu, khả năng quan sát mỗi loại có đối tượng cấu hình riêng.
  • Thời gian dựa trên Duration — Tất cả thời gian chờ sử dụng java.time.Duration thay vì int/long + TimeUnit.

Hỗ trợ Jackson 3

Vert.x vẫn phụ thuộc vào Jackson 2 theo mặc định (2.21.x LTS). Nhưng nếu Jackson 2 không có trên classpath và bạn đang dùng Java 21+, Vert.x 5.1 tự động chọn Jackson 3.1.x. Điều này cho phép các dự án di chuyển theo tốc độ riêng của mình.

Cầu nối gRPC EventBus

Có một cầu nối mới cho phép hiển thị event bus của Vert.x dưới dạng dịch vụ gRPC. Bất kỳ máy khách gRPC nào—bao gồm cả máy khách dựa trên trình duyệt qua gRPC-Web—có thể gửi, đăng tải, đăng ký và thực hiện yêu cầu/phản hồi qua bus. Phía máy chủ sử dụng GrpcEventBusBridge với các quy tắc cho phép; phía máy khách hoạt động với stub được sinh ra hoặc EventBusBridgeGrpcClient. Hoàn hảo cho các microservices đa ngôn ngữ muốn kết nối với event bus trong bộ nhớ của Vert.x mà không cần phải dành riêng cho Java.

Vert.x 5.1 là một bản phát hành hướng tới tương lai, hiện đại hóa ngăn xếp mạng trong khi vẫn duy trì khả năng tương thích ngược. Lớp Config rõ ràng là nền tảng cho Vert.x 6 và hỗ trợ QUIC đặt Vert.x vào vị trí tốt cho thế hệ HTTP tiếp theo.