在服务对服务通信方面,http2是否比http1.1具有性能优势?

在服务对服务通信方面,http2是否比http1.1具有性能优势?,http,http2,Http,Http2,我只是好奇我是否在http2中遗漏了一些东西,这些东西可以使它在服务到服务的通信中更加高效,例如在微服务体系结构中 它的改进仅仅与最终用户的浏览器有关吗?如果您在微服务之间发出许多并发请求,那么它将从中受益。您不需要管理客户端上的TCP连接池,也不需要限制服务端的传入TCP连接数 有些服务可能会从服务器推送中受益,尽管这实际上取决于服务的功能。 如果您对具有重复元数据的服务具有高流量,则标头压缩可能非常有用。可以找到更多信息 总之,是的,它的设计更多地考虑了最终用户,但是RESTful微服务也有

我只是好奇我是否在http2中遗漏了一些东西,这些东西可以使它在服务到服务的通信中更加高效,例如在微服务体系结构中


它的改进仅仅与最终用户的浏览器有关吗?

如果您在微服务之间发出许多并发请求,那么它将从中受益。您不需要管理客户端上的TCP连接池,也不需要限制服务端的传入TCP连接数

有些服务可能会从服务器推送中受益,尽管这实际上取决于服务的功能。 如果您对具有重复元数据的服务具有高流量,则标头压缩可能非常有用。可以找到更多信息


总之,是的,它的设计更多地考虑了最终用户,但是RESTful微服务也有价值,特别是由于连接多路复用。

如果您在微服务之间发出许多并发请求,那么它的好处就在于。您不需要管理客户端上的TCP连接池,也不需要限制服务端的传入TCP连接数

有些服务可能会从服务器推送中受益,尽管这实际上取决于服务的功能。 如果您对具有重复元数据的服务具有高流量,则标头压缩可能非常有用。可以找到更多信息


总之,是的,它的设计更多地考虑了最终用户,但是RESTful微服务也有价值,特别是由于连接多路复用。

HTTP/2为服务到服务的通信添加了一个附加方面,这在HTTP/1.1中不是强制性的。这就是SSL/TLS形式的安全性

尽管RFC标准没有要求,但几乎所有HTTP/2服务器和客户端都会这样做,这使得加密实际上是强制性的

因此,如果您想通过HTTP/2提供和使用微服务,您必须考虑如何创建、管理SSL证书并将其分发给服务器和客户端

因此,转向HTTP/2意味着向您的服务生态系统引入新的技术堆栈,例如公钥基础设施

另一种为服务使用者准备好服务HTTP/2的方法是在启用HTTP/2的使用者和HTTP/1.1服务之间放置一个反向代理

代理将终止来自使用者的HTTP/2连接,并将它们转换为服务器的HTTP/1.1请求,反之亦然

这将实现关注点分离,您的服务将只负责其业务逻辑内容,而代理将处理证书和加密。但同样,您会给您的系统增加更多的复杂性

更复杂,也更好地利用网络资源

更复杂的是你要付出的代价。但是你可以更聪明地使用网络资源。使用HTTP/1.1,您可以在一个客户端和一个服务器之间建立多个TCP连接。打开多个连接几乎总是克服HTTP/1.1的性能缺陷所必需的

不过,建立TCP连接是一项昂贵的任务。为了创建DNS查找,需要TCP握手和SSL握手


HTTP/2将一个客户端和一个服务器之间打开的TCP连接数限制为1。但与此同时,HTTP/2为我们带来了连接多路复用,也就是说,您可以在同一个TCP连接上同时进行多个HTTP会话HTTP/1.1:1 TCP连接=1 HTTP连接

HTTP/2为服务到服务的通信添加了一个附加方面,这在HTTP/1.1中不是强制性的。这就是SSL/TLS形式的安全性

尽管RFC标准没有要求,但几乎所有HTTP/2服务器和客户端都会这样做,这使得加密实际上是强制性的

因此,如果您想通过HTTP/2提供和使用微服务,您必须考虑如何创建、管理SSL证书并将其分发给服务器和客户端

因此,转向HTTP/2意味着向您的服务生态系统引入新的技术堆栈,例如公钥基础设施

另一种为服务使用者准备好服务HTTP/2的方法是在启用HTTP/2的使用者和HTTP/1.1服务之间放置一个反向代理

代理将终止来自使用者的HTTP/2连接,并将它们转换为服务器的HTTP/1.1请求,反之亦然

这将实现关注点分离,您的服务将只负责其业务逻辑内容,而代理将处理证书和加密。但同样,您会给您的系统增加更多的复杂性

更复杂,也更好地利用网络资源

更复杂的是你要付出的代价。但你可以更明智地使用网络资源 谢谢你。使用HTTP/1.1,您可以在一个客户端和一个服务器之间建立多个TCP连接。打开多个连接几乎总是克服HTTP/1.1的性能缺陷所必需的

不过,建立TCP连接是一项昂贵的任务。为了创建DNS查找,需要TCP握手和SSL握手

HTTP/2将一个客户端和一个服务器之间打开的TCP连接数限制为1。但与此同时,HTTP/2为我们带来了连接多路复用,也就是说,您可以在同一个TCP连接上同时进行多个HTTP会话HTTP/1.1:1 TCP连接=1 HTTP连接