启用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. 【Azure 媒体服务】在Azure Media Service门户中使用HLS模式传输视频流,播放视频步骤

    问题描述 如何在Azure Media Service门户中使用HLS模式传输视频流,播放视频步骤 问题解决 第一步:在 Media Service 这边点击资产.上传本地视频资源作为Media Se ...

  2. 可视化探索开源项目的 contributor 关系

    引语:作为国内外最大的代码托管平台,根据最新的 GitHub 数据,它拥有超 372,000,000 个仓库,其中有 28,000,000 是公开仓.分布式图数据库 NebulaGraph 便是其中之 ...

  3. Java Eclipse JUnit单元测试

    1 package com.bytezreo.ut; 2 3 import org.junit.Test; 4 5 /** 6 * 7 * @Description Java中的JUnit单元测试 8 ...

  4. Java //数组的反转

    1 //数组的反转 2 //方式一 3 System.out.println("数组的反转"); 4 5 // for(int i = 0; i <arr.length/2; ...

  5. nginx判断是否手机访问

    if ( $http_user_agent ~* "(Android|iPhone|Windows Phone|UC|Kindle|MicroMessenger |iPad)" ) ...

  6. TLS原理与实践(二)

    主页 个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/ 引言 在上一篇博客中,我们通过<一文读懂TLS1.2协议](ht ...

  7. jQuery 框架

    jQuery 框架 目录 jQuery 框架 一. 概述 二. jQuery 安装引用 2.1 安装 2.2 本地导入使用 2.3 jQuery CDN引入 三. jQuery基本语法 四. 查找标签 ...

  8. 一个简单的HTTP服务器的实现

    我们继续我们的HTTP服务器的实现(使用别的代码来实现), 这个HTTP服务器的实现,我们主要就是关注TCP服务器中的recv还有send的处理. 首先,看一下HTTP,我们在用浏览器访问我们的TCP ...

  9. auto推导类型注意

    auto推导类型忽略顶层const,不忽略底层const. 顶层const:指针或引用本身是const不可变,也就是指针指向的内存地址不可变,但指向的内存内容可变. 底层const:指针指向的内存地址 ...

  10. 记录--Vue PC前端扫码登录

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 需求描述 目前大多数PC端应用都有配套的移动端APP,如微信,淘宝等,通过使用手机APP上的扫一扫功能去扫页面二维码图片进行登录,使得用户 ...