现如今微服务很流行,而微服务很有可能是使用不同语言进行构建的。而微服务之间通常需要相互通信,所以微服务之间必须在以下几个方面达成共识:
- 需要使用某种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都能解决。。
黄山市民网:https://www.huangshanshimin.com/