为什么gRPC难以推广
为什么gRPC难以推广?gRPC构建在HTTP/2之上,而RESTful实际生产中仍然大量使用HTTP/1,无论在性能、吞吐量、消息传输大小等方面, gRPC都完胜。然而就我的从业经历来看,gRPC在推广上遭遇的难度比RESTFul要难很多。我想主要是这么几个原因:
- 没有实际场景,达不到需要使用gRPC的量级,由于人的惰性,如无必要,一般是不会去改的。问过几个同事,大家的想法类似,无非是 觉得没必要,或者不想改等等。毕竟相比Google,FB这类大厂,极少有厂商有这种程度的并发量,RESTFul虽然性能差,但是没有场景来推动, 推广实在是太难了。
- 历史存量,RESTful存量比gRPC大太多。说起RESTFul,我想后端程序员都知道,毕竟不知道这个似乎连面试都过不了,而gRPC则没有 那么多人知道,最近这些年来,一直都是RESTFul大行其道,历史存量难以撼动。
- 对于web端的支持还不够成熟,要写两套。gRPC的确有web支持,但这还是近期才发生的事情,目前应用还不多。
- gRPC更难,无论是使用还是调试,还缺乏相应工具。HTTP/1有
curl
,httpie
,postman
等好工具使用,而且JSON是人类可读的 纯文本,gRPC则不同,首先它使用protobuf进行编码,其次HTTP/2是二进制协议,人类难以读懂,再加上现在工具匮乏,调试、联调起来 确实有难度。
以上就是我总结的一些关于gRPC为何难以推广的原因。
更多文章
本站热门
- socks5 协议详解
- zerotier简明教程
- 搞定面试中的系统设计题
- frp 源码阅读与分析(一):流程和概念
- 用peewee代替SQLAlchemy
- Golang(Go语言)中实现典型的fork调用
- DNSCrypt简明教程
- 一个Gunicorn worker数量引发的血案
- Golang validator使用教程
- Docker组件介绍(一):runc和containerd
- Docker组件介绍(二):shim, docker-init和docker-proxy
- 使用Go语言实现一个异步任务框架
- 协程(coroutine)简介 - 什么是协程?
- SQLAlchemy简明教程
- Go Module 简明教程