美文网首页
go-grpc笔记

go-grpc笔记

作者: losangele | 来源:发表于2019-08-14 10:16 被阅读0次

使用grpc使得进程间的通信和数据同步变得简单,为开发人员专注业务处理提供了很大帮助。

net/rpc包允许 RPC 客户端程序通过网络或是其他 I/O 连接调用一个远端对象的公开方法(必须是大写字母开头、可外部调用的)。
在 RPC 服务端,可将一个对象注册为可访问的服务,之后该对象的公开方法就能够以远程的方式提供访问。一个 RPC 服务端可以注册多个不同类型
的对象,但不允许注册同一类型的多个对象。

一个对象中只有满足如下这些条件的方法,才能被 RPC 服务端设置为可供远程访问:

    1. 必须是在对象外部可公开调用的方法(首字母大写);
    1. 必须有两个参数,且参数的类型都必须是包外部可以访问的类型或者是Go内建支持的类型;
    1. 第二个参数必须是一个指针;
    1. 方法必须返回一个error类型的值。
以上4个条件,可以简单地用如下一行代码表示:
func (t *T) MethodName(argType T1, replyType *T2) error
在上面这行代码中,类型T、T1 和 T2 默认会使用 Go 内置的 encoding/gob 包进行编码解码。

该方法(MethodName)的第一个参数表示由 RPC 客户端传入的参数,第二个参数表示要返回给RPC客户端的结果,该方法最后返回一个 error 类型的值。
RPC 服务端可以通过调用 rpc.ServeConn 处理单个连接请求。多数情况下,通过 TCP 或是 HTTP 在某个网络地址上进行监听来创建该服务是个不错的选择。
在 RPC 客户端,Go 的 net/rpc 包提供了便利的 rpc.Dial() 和 rpc.DialHTTP() 方法来与指定的 RPC 服务端建立连接。在建立连接之后,Go 的 net/rpc 包允许我们使用同步或者异步的方式接收 RPC 服务端的处理结果。
调用 RPC 客户端的 Call() 方法则进行同步处理,这
时候客户端程序按顺序执行,只有接收完 RPC 服务端的处理结果之后才可以继续执行后面的程序。
当调用 RPC 客户端的 Go() 方法时,则可以进行异步处理,RPC 客户端程序无需等待服务端的结果即可执行后面的程序,而当接收到 RPC 服务端的处理结果时,再对其进行相应的处理。
无论是调用 RPC 客户端的 Call() 或者是 Go() 方法,都必须指定要调用的服务及其方法名称,以及一个客户端传入参数的引用,还有一个用于接收处理结果参数的指针。
如果没有明确指定 RPC 传输过程中使用何种编码解码器,默认将使用 Go 标准库提供的encoding/gob 包进行数据传输。

相关文章

  • go-grpc笔记

    使用grpc使得进程间的通信和数据同步变得简单,为开发人员专注业务处理提供了很大帮助。 net/rpc包允许 RP...

  • go-grpc环境搭建

    前言: 随着微服务的兴起,现在 越来越多的 rpc 框架 开始出现,前段时间自己学习搭建了一下 grpc ,在这里...

  • 开发笔记目录查看

    笔记一: 笔记二: 笔记三: 笔记四: 笔记五: 笔记六:

  • 目录

    羊皮笔记01 羊皮笔记02 羊皮笔记03 羊皮笔记04 羊皮笔记05 羊皮笔记06 羊皮笔记07

  • 《大江大河》笔记若干(一)

    后续笔记若干…… 后续笔记若干…… 后续笔记若干…… 后续笔记若干…… 后续笔记若干……

  • 记笔记分为闪念笔记、文献笔记和永久笔记

    记笔记分为闪念笔记、文献笔记和永久笔记 7/10 1,记闪念笔记 2,记文献笔记 3,记永久笔记 ——申克•阿伦斯...

  • 卡片笔记上记录什么?

    卡片可以用来记录四种笔记,分别是:闪念笔记、文献笔记、永久笔记、项目笔记。 1、闪念笔记(Fleeting Not...

  • MARKDOWN学习笔记

    标题 # MARKDOWN学习笔记 MARKDOWN学习笔记 MARKDOWN学习笔记- MARKDOWN学习笔记...

  • 关于五款云笔记应用的对比

    这篇笔记主要是关于印象笔记、有道云笔记、为知笔记、麦库笔记和云笔记五款云笔记应用的对比,来简单写一下关于云笔记类产...

  • Day60+五组杨一丁+《高效人士用超级笔记术》读书笔记

    今天阅读第二种笔记创意笔记共有6种 障碍(handle)笔记;漫画笔记;黑色三角笔记;白色三角笔记;关联笔记;逆向...

网友评论

      本文标题:go-grpc笔记

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