使用python的thriftpy2模块来实现一个简单的rpc

使用python的thriftpy2模块来实现一个简单的rpc

rpc
RPC,这是远程功能调用,就是我们原来是一个整体的项目,现在需要拆分为一个个服务。RPC框架就是编程人员在同一台机器的不同进程之间,或者同的机器之间,进行远程调用代码的工具。这样我们就不用去管底层的具体实现,只需要搞好我们原来的业务逻辑处理。

在这里插入图片描述

实现一个rpc流程:

我们需要定义thrift文件,来描述服务接口

定义客户端代码

定义服务端代码

先开启服务,就可以执行客户端
如果需要同时提供多个服务,就需要建立多个.thrift文件来实现

rpc举例:

pingpong.thrift

service PingPong {
    string ping(),
}

server.py

import thriftpy2

pingpong_thrift = thriftpy2.load("pingpong.thrift", module_name="pingpong_thrift")
from thriftpy2.rpc import make_server


class Dispatcher(object):
    def ping(self):
        return "pong"


server = make_server(pingpong_thrift.PingPong, Dispatcher(), '127.0.0.1', 6000)
server.serve()

client.py

import thriftpy2

pingpong_thrift = thriftpy2.load("pingpong.thrift", module_name="pingpong_thrift")

from thriftpy2.rpc import make_client

client = make_client(pingpong_thrift.PingPong, '127.0.0.1', 6000)
print(client.ping())

各个文件的功能是什么?

thrift文件通过一种中立的方式描述了服务器和客户端之间通信的接口(Thriftpy创建服务器和客户端都需要对该文件进行解析),使得使用不同语言的客户端和服务器之间可以进行透明的通信

服务端:

thriftpy2构建服务端
1.调用thriftpy.load方法对thrift文件进行解析,在内存中构建对应的module
2.调用make_server将构建的module和完成具体业务功能的class绑定,同时完成传输层和协议层的设置,生成thrift服务器端
3.调用server.serve方法启动服务器

客户端:

thriftpy2构建客户端接口
1.调用thriftpy.load方法对thrift文件进行解析,在内存中构建对应的module
2.调用make_client绑定上一步构建的module,同时完成传输层和协议层的设置,生成Thirft客户端
3.根据生成的客户端调用响应的接口

文笔太差,建议一定要看参考文档。
参考文档:
https://www.jianshu.com/p/2accc2840a1b
https://www.jianshu.com/p/7d6853140e13
https://www.cnblogs.com/hongtrands/p/11148840.html
https://blog.csdn.net/yzj225/article/details/76855991

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值