nginx用gRPC做反向代理,让速度飞起来

本文介绍了gRPC作为一个高性能RPC框架,如何基于HTTP/2标准设计实现多路复用,从而提高用户体验和运维效率。通过升级nginx到支持HTTP/2和gRPC,以及确保后端应用如tomcat支持HTTP/2,可以有效解决高并发时的网络IO阻塞问题,提升服务器处理数据的速度和能力。
摘要由CSDN通过智能技术生成
什么是grpc?

gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持.

gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。

划重点

基于 HTTP/2 标准设计

既然如此,grpc天然继承了http2最牛逼的优势:多路复用 (Multiplexing)

多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。

那对于我们来说有什么好处呢?

好处是显而易见的:

对于用户

由于目前http1.1协议无法多路复用及浏览器的限制(不同浏览器对于同一时间的请求连接数量有限制) 直接导致请求限制阻塞,打开需要加载资源较多的网站时速度很慢,而HTTP由于可以在同一条连接内多重的请求-响应消息,大大降低了资源等待时间。

对于我们搞运维的

在平常的工作中大家部署最多的事情就是反向代理。

通常都是前置nginx后挂在多个应用容器(tomcat)

由于nginx反向代理走的是http1.1协议所以导致nginx接收到用户请求后都会通过http1.1协议对后端应用容器发起请求

大家知道发起一次的http,发起方就会临时建立一个socket作为与对端建立连接的通道。如果遇到高并发高请求量的时候。由于socket资源有限,很容易导致网络IO阻塞等一系列问题。<

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值