目录
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
RPC(Remote procedure call)
gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services.
在分布式计算中,远程过程调用(RPC)是指计算机程序使过程(子例程)在不同的地址空间(通常在共享网络上的另一台计算机上)中执行,该地址空间被编码为正常(本地)过程调用,没有程序员明确编码远程交互的细节。也就是说,无论子程序是执行程序的本地程序还是远程程序,程序员都编写基本相同的代码。这是一种客户机-服务器交互形式(调用者是客户机,执行者是服务器),通常通过请求-响应消息传递系统实现。在面向对象编程范例中,RPC由远程方法调用(RMI)表示。RPC模型意味着位置透明性的级别,即调用过程在很大程度上是相同的,无论它们是本地的还是远程的,但是它们通常是不相同的,因此可以区分本地调用和远程调用。远程呼叫通常比本地呼叫慢几个数量级,可靠性更低,因此区分它们很重要。
GRPC
gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services.
gRPC是一个现代的开源高性能远程过程调用(RPC)框架,可以在任何环境中运行。它可以通过可插拔的负载平衡、跟踪、健康检查和身份验证支持,有效地连接数据中心内和数据中心之间的服务。它也适用于分布式计算的最后一英里,将设备、移动应用程序和浏览器连接到后端服务。
开始
官方仓库:https://github.com/grpc/grpc。
官网:https://www.grpc.io/。写的很清楚。
底层原理我就不咋了解了只知道最基础的用法怎么用。
首先按官网的快速开始操作步骤把grpc和gRPC tools装好。
Python的gRPC工具包括协议缓冲区编译器(protocol buffer compiler)protoc和用于从.proto服务定义生成服务器和客户端代码的特殊插件。
关键的配置文件是.proto文件,官方示例如下:
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
Greeter是一个服务,一个服务里可以有很多函数。下面定义的可以看成是一个结构体,=1表示这是第一个参数,=2就表示第二个参数,string是参数类型,还有int32啥的。
之后就可以用这个proto生成不同语言的服务器和客户端代码,服务器和客户端不需要使用一样的语言。
python用起来是真的方便,Java我不太会所以配的有点难受。
生成服务器和客户端之后,导入到你的项目里。你需要自己实现proto里的那些函数,然后按官网的写法开启服务器和客户端就可以成功用上gRPC啦。