GRPC

  • 特性:
    • 多语言
    • 轻量级,高性能
    • 可插拔
    • IDL
    • 设计理念
    • 移动端:基于HTTP2设计,支持双向流,消息头压缩,单TCP的多路复用,服务端推送等特性
    • 服务而非对象,消息而非引用
    • 负载无关:不同的服务需要使用不同的消息类型和编码
    • 流:streaming api
    • 阻塞式和非阻塞式:支持异步和同步处理在客户端和服务端间交互的消息序列。
    • 元数据交换
    • 标准化状态码
    • protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative helloworld/helloworld.proto
  • healthCheck
    • 主动健康检查 health check,可以在服务提供者服务不稳定时,被消费者所感知,临时从负载均衡中摘除,减少错误请求。当服务提供者重新稳定后,health check 成功,重新加入到消费者的负载均衡,恢复请求。health check,同样也被用于外挂方式的容器健康检测,或者流量检测(k8s liveness & readiness)。