启用http3模块,执行如下命令:

java -jar $JETTY_HOME/start.jar --add-modules=http3

命令的输出,如下:

ALERT: There are enabled module(s) with licenses.
The following 2 module(s):
+ contains software not provided by the Eclipse Foundation!
+ contains software not covered by the Eclipse Public License!
+ has not been audited for compliance with its license Module: jna
+ Java Native Access (JNA) is licensed under the LGPL, version 2.1
+ or later, or (from version 4.0 onward) the Apache License,
+ version 2.0.
+ You can freely decide which license you want to apply to the project.
+ You may obtain a copy of the LGPL License at:
+ http://www.gnu.org/licenses/licenses.html
+ A copy is also included in the downloadable source code package
+ containing JNA, in file "LGPL2.1", under the same directory
+ as this file.
+ You may obtain a copy of the Apache License at:
+ http://www.apache.org/licenses/
+ A copy is also included in the downloadable source code package
+ containing JNA, in file "AL2.0", under the same directory
+ as this file. Module: quiche
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Proceed (y/N)? y
INFO : alpn-java transitively enabled
INFO : alpn transitively enabled, ini template available with --add-modules=alpn
INFO : work transitively enabled
INFO : http2 transitively enabled, ini template available with --add-modules=http2
INFO : http3 initialized in ${jetty.base}/start.d/http3.ini
INFO : jna transitively enabled
INFO : ssl transitively enabled, ini template available with --add-modules=ssl
INFO : quiche transitively enabled
INFO : mkdir ${jetty.base}/work
INFO : mkdir ${jetty.base}/lib/http3
INFO : download https://repo1.maven.org/maven2/net/java/dev/jna/jna-jpms/5.14.0/jna-jpms-5.14.0.jar to ${jetty.base}/lib/http3/jna-jpms-5.14.0.jar
INFO : download https://repo1.maven.org/maven2/org/mortbay/jetty/quiche/jetty-quiche-native/0.20.0/jetty-quiche-native-0.20.0.jar to ${jetty.base}/lib/http3/jetty-quiche-native-0.20.0.jar
INFO : Base directory was modified

http3模块的配置文件$JETTY_BASE/start.d/http3.ini,内容如下:

# ---------------------------------------
# Module: http3
# Enables experimental support for the HTTP/3 protocol.
# ---------------------------------------
--modules=http3 ## The host/address to bind the connector to.
# jetty.quic.host=0.0.0.0 ## The port the connector listens on.
# jetty.quic.port=8444 ## The connector idle timeout, in milliseconds.
# jetty.quic.idleTimeout=30000 ## Specifies the maximum number of concurrent requests per session.
# jetty.quic.maxBidirectionalRemoteStreams=128 ## Specifies the session receive window (client to server) in bytes.
# jetty.quic.sessionRecvWindow=4194304 ## Specifies the stream receive window (client to server) in bytes.
# jetty.quic.bidirectionalStreamRecvWindow=2097152 ## Specifies the stream idle timeout, in milliseconds.
# jetty.http3.streamIdleTimeout=30000

各参数的说明,如下:

  • jetty.quic.host

    监听服务的主机地址,默认值为0.0.0.0,即在本机所有的IP地址上监听链接的请求。
  • jetty.quic.idleTimeout

    链接的空闲时长,单位:毫秒,默认值为30000,即30秒。
  • jetty.quic.maxBidirectionalRemoteStreams

    单个会话中允许并行发起的请求的数量。默认值为128
  • jetty.quic.sessionRecvWindow

    会话的接收数据的窗口,单位:字节。默认值为4194304
  • jetty.quic.bidirectionalStreamRecvWindow

    双向传输时接收数据的窗口,缓冲区的大小,单位:字节。默认值为2097152
  • jetty.http3.streamIdleTimeout

    单位:毫秒,默认值为30000,即30秒。

参考资料

Jetty的http3模块的更多相关文章

  1. Jetty使用教程(四:21-22)—Jetty开发指南

    二十一.嵌入式开发 21.1 Jetty嵌入式开发HelloWorld 本章节将提供一些教程,通过Jetty API快速开发嵌入式代码 21.1.1 下载Jetty的jar包 Jetty目前已经把所有 ...

  2. Jetty源码分析(一)

    一.目的 1.了解jetty组成架构: 2.学习jetty启动过程: 3.学习请求访问过程: 4.学习jetty内各模块作用,学习各模块内部代码: 二.jetty版本 本文所学习的jetty版本为:9 ...

  3. Windows 上的 Jetty 小工具

    做项目经常遇到需要开发Java应用,我喜欢用Jetty进行开发.部署,主要是由于Jetty的轻量级. Jetty 项目主页:http://www.eclipse.org/jetty/, 最新版9.30 ...

  4. Jetty应用服务器的安装详解

    Jetty是一个开源的Servlet容器和应用服务器,它极度轻量级.高便携性.功能强大.灵活和扩展性好,而且支持各种技术如SPDY.WebSocket.OSGi.JMX.JNDI和JAAS.Jetty ...

  5. Jetty开发指导:HTTP Client

    介绍 Jetty HTTP client模块提供易用的API.工具类和一个高性能.异步的实现来运行HTTP和HTTPS请求. Jetty HTTP client模块要求Java版本号1.7或者更高,J ...

  6. 二、Jetty的配置说明

    运行Jetty Web应用 在Jetty应用服务器中部署war项目很简单,只需把项目war包放入Jetty的webapps子目录即可.你都无需重启Jetty,Jetty会自动随时监听webapps目录 ...

  7. Spring Boot 学习(3)

    文 by / 林本托 Tips 做一个终身学习的人. Tips 代码路径:https://github.com/iqcz/Springbootdemo/tree/master/code01/ch3 W ...

  8. Spring HttpInvoker 从实战到源码追溯

    Spring HttpInvoker 作为 Spring 家族中老牌远程调用模型,深受开发者喜爱. 其主要目的是来执行基于 HTTP 的远程调用(轻松穿越防火墙),并使用标准的 JDK 序列化机制. ...

  9. 尚硅谷springboot学习25-嵌入式Servlet容器

    SpringBoot默认使用Tomcat作为嵌入式的Servlet容器:

  10. 四、Spring Boot Web开发

    四.Web开发 1.简介 使用SpringBoot: 1).创建SpringBoot应用,选中我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可 ...

随机推荐

  1. nosql几种热门数据库的优缺点及应用场景

    MongoDB.ElasticSearch.Redis.HBase这四种热门数据库的优缺点及应用场景 https://www.cnblogs.com/chong-zuo3322/p/12869059. ...

  2. Emqx高可用架构

    目录 优化前架构 主要问题 haproxy问题 优化后架构 优化功能点 emq版本升级 linux系统调优 haproxy调优 测试工具 依赖安装 配置erl环境变量 安装压测软件 测试指令与结果展示 ...

  3. 【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided

    问题描述 在App Service For Linux 中,部署NodeJS应用,应用启动失败. 报错信息为: 2023-08-29T11:21:36.329731566Z RangeError: I ...

  4. 【Azure 事件中心】Event Hubs中存在非常多的错误数据,是否能提前删除这些数据呢?

    问题描述 因为一些特殊原因,Event Hub 里面堆积了很多不需要的数据事件,正常要等事件中的过期时间到后才有Event Hub自动删除掉,但希望能够尽快马上删除,有没有什么手动的方法吗? 问题解答 ...

  5. 【Azure 云服务】云服务(经典)迁移到云服务(外延支持)的八个问题

    问题一:云服务( 经典)迁移到外延支持云服务是否需要停机? 通过平台的迁移工具(即验证.准备.提交)进行迁移没有停机时间.但是如果需要准备满足迁移条件,如删除对等互联,使用其他vnet资源则需要额外的 ...

  6. Lock wait timeout exceeded; try restarting transaction-Mysql报错

    一.问题由来 现在在做一个小程序的后台,使用Java写的,数据库使用的Mysql,之前一直调试的时候都好好的,今天在调试的时候突然就报一个错: ### Error updating database. ...

  7. node开发命令行脚本 / commander

    1. 脚本第一行添加 #!/usr/bin/env node // index.js #!/usr/bin/env node console.log('hello world') 2. package ...

  8. 逆向通达信Level-2 续三 (KTL python控制台动态调试)

    python控制台逆向分析. python 跟 js 自如切换 逆向通达信Level-2 续十一 (无帐号登陆itrend研究版) 逆向通达信Level-2 续十 (trace脱壳) 逆向通达信Lev ...

  9. KTL 最新支持Qt5窗口编程,一个支持C++14编辑公式的K线技术工具平台

    K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...

  10. 【atcoder 293 F - Erase Subarrays】【动态规划】

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public ...