随笔分类 -  RPC

Remote Procedure Call,即远程过程调用,通俗的说就是调用远处的一个函数,可能是同一个文件内的不同函数,也可能是同一个机器的另一个进程的函数,还可能是远在火星好奇号上面的某个秘密方法。
摘要:这里我们尝试将Protobuf和RPC结合在一起使用,通过 Protobuf来最终保证RPC的接口规范和安全。 Protobuf中最基本的数据单元是message,是类似Go语言中结构体的存在。在message中可以嵌套message或其他基础数据类型的成员。 首先创建hello.proto文件,其 阅读全文
posted @ 2021-04-05 14:39 pangqianjin 阅读(372) 评论(0) 推荐(0) 编辑
摘要:Go语言内在的RPC框架已经支持在HTTP协议上提供RPC服务。但是框架的HTTP服务同样采用了内置的Gob协议,并且没有提供采用其他协议的接口,因此从其他语言依然无法访问,在前面的例子中,我们已经实现了在TCP协议之上运行jsonrpc服务,并且通过nc命令行工具成功实现了RPC方法调用。现在我们 阅读全文
posted @ 2021-04-04 15:07 pangqianjin 阅读(101) 评论(0) 推荐(0) 编辑
摘要:标准库的RPC默认采用Go语言特有的Gob编码,因此从其他语言调用Go语言实现的RPC服务将比较困难。在互联网的微服务时代,每个RPC以及服务的使用者都可能采用不同的编程语言,因此跨语言是互联网时代RPC的一个首要条件。得益于RPC的框架设计,Go语言的RPC其实也是很容易实现跨语言的。 Go语言的 阅读全文
posted @ 2021-04-04 14:41 pangqianjin 阅读(746) 评论(0) 推荐(0) 编辑
摘要:在涉及RPC的应用中,作为开发人员一般至少有3种角色:首先是服务器端实现RPC方法的开发人员,其次是客户端调用RPC方法的人员,最后也是最重要的是制定服务器端和客户端RPC接口规范的设计人员。为了简化将以上几种角色的工作全部放到一起,虽然看似实现简单,但是不利于后期的维护和工作的切割。 如果要重构H 阅读全文
posted @ 2021-04-04 13:46 pangqianjin 阅读(427) 评论(0) 推荐(0) 编辑
摘要:Go语言的RPC包的路径为net/rpc,也就是放在了net包目录下面。因此我们可以猜测该RPC包是建立在net包的基础之上的 。 我们首先构造一个HelloService类型,其中的Hello()方法用于实现打印功能: 其中的Hello()方法必须满足Go语言的RPC规则 :方法只能有两个可序列化 阅读全文
posted @ 2021-04-04 13:01 pangqianjin 阅读(111) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示