go grpc

作者: Wu杰语 | 来源:发表于2021-10-13 17:27 被阅读0次

    代码例子

    使用go grpc实现grpc参考这篇文章
    https://blog.csdn.net/u013862108/article/details/103808011/
    需要先安装protoc和proto-go-pkg,protoc就是编译proto文件,生产序列化和反序列化文件
    https://www.cnblogs.com/niuben/p/14212878.html
    报错参考
    https://blog.csdn.net/qq_44033530/article/details/115418377

    英文原版文档:

    https://grpc.io/
    https://developers.google.com/protocol-buffers/docs/gotutorial
    需要管制grpc支持鉴权、加密功能
    https://grpc.io/docs/guides/auth/

    grpc的特点

    • 语言中立,支持多种语言;
    • 基于 IDL 文件定义服务,通过 proto3 工具生成指定语言的数据结构、服务端接口以及客户端 Stub;
    • 通信协议基于标准的 HTTP/2 设计,支持双向流、消息头压缩、单 TCP 的多路复用、服务端推送等特性,这些特性使得 gRPC 在移动端设备上更加省电和节省网络流量;
    • 序列化支持 PB(Protocol Buffer)和 JSON,PB 是一种语言无关的高性能序列化框架,基于 HTTP/2 + PB, 保障了 RPC 调用的高性能。
    grpc

    从这个图可以看到grpc可以打通不同语言,服务端用go,客户端可以用java。性能高是因为使用了http/2的协议以及PB作为序列化协议,打通的原因是因为proto文件定义,只要服务端客户端都是用proto定义,使用各自语言的proto工具生产stub文件,就可以相互通讯。

    小结

    grpc新鲜又不新鲜,2000年左右比较火的corba也是一样的方式,设计思想一样,不同的是实现,corba使用IDL定义接口,底层使用iiop协议。

    相关文章

      网友评论

          本文标题:go grpc

          本文链接:https://www.haomeiwen.com/subject/qvteoltx.html