现如今微服务很流行,而微服务很有可能是使用不同语言进行构建的。而微服务之间通常需要相互通信,所以微服务之间必须在以下几个方面达成共识:

  • 需要使用某种api
  • 数据格式
  • 错误的模式
  • 负载均衡
  • 。。。

现在最流行的一种api风格可能是rest,它主要是通过http协议来传输json数据。

但是现在我们可以看看grpc(),它来自google,并且支持众多主流的语言包括go,dart,c#,c/c++,nodejs,python等等。

下面就学习一下grpc。

 

grpc能解决哪些问题?

构建(web)api是挺麻烦的,因为构建api时我们得考虑:

  • 数据的格式是json、xml还是二进制的;
  • 端点地址以及get还是post等;
  • 如何调用api以及对异常的处理规则;
  • api的效率:一次调用读取多少数据?是否太多了或太少了?太少的话可能会导致多次api的调用;
  • 延迟;
  • 扩展性,是否能支持成上千个客户端
  • 负载均衡
  • 与其他语言的互操作性
  • 如何处理身份认证、监控、日志等等

以上这些问题据说grpc都能解决。。