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来做一个小项目

  • 相关阅读:
    GridView中checkbox实现全选[转]
    go 格式化秒 running
    mysql 聚簇索引和非聚簇索引 running
    go context上下文取消 running
    go reflect running
    time.ticker running
    go 数据结构与算法之二分查找 running
    mysql 联合索引最左前缀匹配原则 running
    es 修改 mapping 字段类型 running
    linux 查看虚拟机网卡命令 running
  • 原文地址:https://www.cnblogs.com/happy2010/p/10894311.html
Copyright © 2011-2022 走看看