《精通併發與Netty》學習筆記(07 - 基於Thrift實現Java與Python的RPC調用)

上節咱們介紹了基於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

相關文章
相關標籤/搜索