「是时候升级java11了」HTTP/2.0 协议
2020/3/8 17:01:38
本文主要是介绍「是时候升级java11了」HTTP/2.0 协议,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
专栏目录
- 是时候升级java11了-01-jdk11优势和jdk选择
- 是时候升级java11了-02-升级jdk11踩坑记
- 是时候升级java11了-03虚拟机Jvm参数设置
- 是时候升级java11了-04微服务内http2通信之http2 Clear Text(h2c)
- 是时候升级java11了-05微服务内h2c通信的阻碍和问题解决
前言
看过前面几篇文章的同学是否也在尝试将Jdk升级到Java11呢?今天笔者要讲解的是微服务内部升级到 HTTP/2.0 协议。
http2优势想必大家都知晓,在这不做过多的介绍。说起 HTTP/2.0 大家所熟知的应该是 Over TLS
版,现有支持HTTP/2.0的浏览器都是实现的 Over TLS
版,
今天带领大家了解 HTTP/2.0 的另一个版本 HTTP/2.0 Clear Text
。
HTTP/2.0 Clear Text
HTTP/2.0 Cleartext
,简称 h2c
(后文将使用这个简称)。使用101 改变协议协商升级为 HTTP2
协议,采用 http2
不做加密,非常适合微服务内部
的请求。
享受 http2
的多路复用,降低 tls
对服务器 cpu
的压力(加解密非常费 CPU),而且微服务内部 tls
也增加了证书的维护成本。
升级 h2c
Spring boot 容器笔者使用的是 Undertow
,网关使用的 Spring cloud gateway
,今天我们主要讲解这2个组件的升级到 h2c
。
- Undertow 升级到 h2c 打开 Undertow 官网:undertow.io,我们可以看到首页上有这也一个说明:
google 翻译一下:支持HTTP升级,以允许通过HTTP端口多路复用多个协议。
/** * Undertow http2 h2c 配置 * * @author L.cm */ @Configuration @ConditionalOnClass(Undertow.class) @AutoConfigureBefore(ServletWebServerFactoryAutoConfiguration.class) public class UndertowHttp2Configuration { @Bean public ServletWebServerFactory servletWebServerFactory() { UndertowServletWebServerFactory factory = new UndertowServletWebServerFactory(); // 开启 undertow http2 factory.addBuilderCustomizers(builder -> builder.setServerOption(ENABLE_HTTP2, true)); return factory; } } 复制代码
- spring cloud gateway 升级到 h2c
spring cloud gateway
server 也是支持h2c
的配置比较容易,只需开启配置即可,具体逻辑可以查看下图源码。
server: ssl: enabled: false http2: enabled: true 复制代码
测试 h2c
上文介绍了服务端如何开启 h2c
,但是是否开启成功只有测试过才知道。
最简单的方法就是基于 java11
的 HttpClient
来测试一番。
public static void main(String[] args) throws IOException, InterruptedException { HttpClient client = HttpClient.newBuilder().build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://localhost:8081")) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.version()); // HTTP_2 System.out.println(response.body()); // test } 复制代码
后言
看到这里大家是不是跃跃欲试。当然,很多事情也不是那么一帆风顺。后面的一篇文章将会继续帮助大家趟坑。
等等好像有什么不对,我们的专栏不是 java11
么?怎么变成了 h2c
?
别着急后面一篇文章将为大家解密,喜欢我们的文章的朋友记得关注我们。
声明
本系列文章由微服务核心组件mica作者如梦技术整理撰写, 如有参考或者转载,请保留原作者和注明出处。
这篇关于「是时候升级java11了」HTTP/2.0 协议的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南