• 《精通并发与Netty》学习笔记(07


    上节我们介绍了基于Thrift实现java与java的RPC调用,本节我们基于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调用,下节我们结合netty4+springboot来做一个小项目

  • 相关阅读:
    Redis数据结构之字典
    多路复用
    Redis数据结构之SDS
    记一个图片转换神器vectorizer
    Java基础之面向对象上
    科学
    Linux内核源码分析之setup_arch (二)
    Linux内核源码分析之setup_arch (一)
    printk 流程分析
    多个线程顺序打印问题,一网打尽
  • 原文地址:https://www.cnblogs.com/happy2010/p/10894311.html
Copyright © 2020-2023  润新知