上节咱们介绍了基于Thrift实现java与java的RPC调用,本节咱们基于Thrift实现Java与Python的RPC调用java
首先,修改data.thirft文件,将命名空间由java改成py python
namespace py thrift.generated
而后打开终端,输入命令 thrift --gen py src/thrift/data.thrift 生成Python代码spring
打开Pycharm,新建Pure Python项目,将在idea中生成的python文件拷贝至Pycharm中springboot
编写python客户端程序py_client.pyide
# -*- 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端效果和上节效果同样,这里再也不截图)idea
本节咱们介绍了基于Thrift实现Java与Python的RPC调用,下节咱们结合netty4+springboot来作一个小项目spa