zoukankan      html  css  js  c++  java
  • 《精通并发与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来做一个小项目

  • 相关阅读:
    P1772 [ZJOI2006]物流运输
    P3951 小凯的疑惑
    P1082 同余方程(【模板】exgcd)
    T107741 【模板】权值线段树合并
    P3205 [HNOI2010]合唱队
    P1062 数列
    P1144 最短路计数
    P1502 窗口的星星
    P4147 玉蟾宫(【模板】悬线法)
    CSP模拟赛#3 分段(T1-26)
  • 原文地址:https://www.cnblogs.com/happy2010/p/10894311.html
Copyright © 2011-2022 走看看