我有一个处理大量流量的web服务。此流量可能在每分钟数百万的范围内。该服务托管在ELB后面的亚马逊网络服务EC2上,并使用HTTP。这导致了AWS账单中包含大量数据传输费用。数据传出组件通常更高,因为除了SSL协商之外,来自web服务的50%响应有点大,并且编码为JSON。
现在,由于二进制序列化,与表示为gRPC的类似数据相比,JSON有效负载的大小更小。那么,通过从HTTP切换到gRPC可以节省数据传输成本吗?
我在任何地方都找不到任何将AWS数据传输成本与HTTP API/gRPC服务相关联的基准测试/文章。即使节省5-10%也是有益的。
PS:在这里,访问web服务的客户端也是我的。因此,可以同时在服务器端和客户端进行更改。
发布于 2020-04-25 02:29:29
也许吧,但也可能不是。这取决于您的实际数据。
如果您使用HTTP进行通信,那么总消息大小有两个组成部分: HTTP头和响应体。如果标头代表整个消息大小的重要部分,则通过使用替代的第7层协议(如WebSockets )来去除它们更有意义。
如果标头不重要,则取决于您的实际消息内容。这是因为gRPC使用的Protocol Buffers本质上执行两个优化:
就我个人而言,我认为切换到WebSockets是最好的第一步。当然,这假设这些消息来自相对较少的客户端。如果每条消息都来自不同的客户端,则不会保存任何内容。
https://stackoverflow.com/questions/61409472
复制相似问题