本节我们基于Thrift实现Java与Python的RPC调用
首先,修改data.thirft文件,将命名空间由java改为py
namespace py thrift.generated
然后打开终端,输入命令 thrift --gen py src/thrift/data.thrift 生成Python代码
打开Pycharm,新建Pure Python项目,将在idea中生成的python文件拷贝至Pycharm中
编写python客户端程序py_client.py
# -*- coding:utf-8 -*-
from py.generated import PersonService, ttypes
__author__ = 'kpzhang'
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TCompactProtocol
try:
tSocket = TSocket.TSocket("localhost", 8899)
tSocket.setTimeout(900)
transport = TTransport.TFramedTransport(tSocket)
protocol = TCompactProtocol.TCompactProtocol(transport)
client = PersonService.Client(protocol)
transport.open()
person = client.getPersonByUsername("张三")
print(person.username)
print(person.age)
print(person.married)
print('---------------------')
newPerson = ttypes.Person();
newPerson.username = "李四"
newPerson.age = 30
newPerson.married = True
client.savePerson(newPerson)
transport.close()
except Thrift.TException as tx:
print('%s' % tx.message)
分别启动java服务端和Python客户端,查看演示效果,(java端效果和上节效果一样,这里不再截图)
本节我们介绍了基于Thrift实现Java与Python的RPC调用