为什么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为何难以推广的原因。


更多文章
  • 如何面试-作为面试官得到的经验
  • 自己写一个容器
  • Golang(Go语言)中实现典型的fork调用
  • 软件开发之禅---大事化小,各个击破
  • 程序员的自我修养:链接,装载与库 阅读笔记
  • Redis源码阅读与分析二:双链表
  • Redis源码阅读与分析三:哈希表
  • Redis源码阅读与分析一:sds
  • Golang runtime 源码阅读与分析
  • Golang的一些坑
  • GC 垃圾回收
  • 设计一个路由
  • Go语言性能优化实战
  • 那些年开发的时候踩过的坑
  • (关系型)数据库优化总结