广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python实现Thrift服务端的方法
  • 861
分享到

python实现Thrift服务端的方法

2024-04-02 19:04:59 861人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录环境准备编写.thrift文件生成python对应的thrift代码编写服务端编写客户端用于测试测试服务端近期在项目中存在跨编程语言协作的需求,使用到了Thrift。本文将记录用

近期在项目中存在跨编程语言协作的需求,使用到了Thrift。本文将记录用Python实现Thrift服务端的方法。

环境准备

  • 根据自身实际情况下载对应的Thrift编译器,比如我在windows系统上使用的是thrift-0.9.3.exe 。下载地址:Http://arcHive.apache.org/dist/thrift/
  • python安装thrift库:pip install thrift

编写.thrift文件

.thrift文件定义了Thrift服务端和Thrift客户端的通信接口,在该文件中定义的接口需由服务端实现,并可被客户端调用。Thrift编译器会调用.thrift文件生成不同语言的thrift代码,用于之后实现thrift服务端或thrift客户端。

.thrift文件的编写规则可参考Thrift白皮书。下面将以demo.thrift文件举例


service DemoService{
    string ping(1:string param)
    map<i32,string> get_int_string_mapping_result(1:i32 key, 2:string value)
    bool get_bool_result()
}

生成python对应的thrift代码

使用以下命令可以生成不同语言的thrift代码:

thrift --gen <language> <Thrift filename>

 通过thrift-0.9.3.exe --gen py demo.thrift 命令生成python版本的thrift文件,文件夹为gen-py,如下所示:

编写服务端

编写服务端server.py,用于实现在demo.thrift文件中定义的接口功能。


from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from thrift.server import TServer
import sys

sys.path.append("./gen-py/")
from demo import DemoService
import random


class DemoServer:
    def __init__(self):
        self.log = {}

    def ping(self, param):
        return "echo:" + param

    def get_int_string_mapping_result(self, key, value):
        return {key: value}

    def get_bool_result(self):
        return random.choice([True, False])


if __name__ == '__main__':
    # 创建处理器
    handler = DemoServer()
    processor = DemoService.Processor(handler)

    # 监听端口
    transport = TSocket.TServerSocket(host="0.0.0.0", port=9999)

    # 选择传输层
    tfactory = TTransport.TBufferedTransportFactory()

    # 选择传输协议
    pfactory = TBinaryProtocol.TBinaryProtocolFactory()

    # 创建服务端
    server = TServer.TThreadPoolServer(processor, transport, tfactory, pfactory)

    # 设置连接线程池数量
    server.setNumThreads(5)

    # 启动服务
    server.serve()

编写客户端用于测试

编写客户端client.py,用于测试服务端功能是否可用。


from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
import sys
sys.path.append("./gen-py/")

from demo import DemoService


if __name__ == '__main__':
    transport = TSocket.TSocket('127.0.0.1', 9999)
    transport = TTransport.TBufferedTransport(transport)
    protocol = TBinaryProtocol.TBinaryProtocol(transport)
    client = DemoService.Client(protocol)

    # 连接服务端
    transport.open()

    recv = client.ping("test")
    print(recv)

    recv = client.get_int_string_mapping_result(10, "MyThrift")
    print(recv)

    recv = client.get_bool_result()
    print(recv)

    # 断连服务端
    transport.close()

编写完成后,整个项目结构如下图所示:

测试服务端

运行服务端server.py后,运行客户端client.py,打印的内容如下:


echo:test
{10: 'MyThrift'}
True

此时客户端能够正常调用服务端所提供的接口。(PS:在调试过程中,也许需要修改gen-py文件夹中Thrift编译器生成的python代码)

以上就是python实现Thrift服务端的方法的详细内容,更多关于python实现Thrift服务端的资料请关注编程网其它相关文章!

--结束END--

本文标题: python实现Thrift服务端的方法

本文链接: https://www.lsjlt.com/news/124001.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python实现Thrift服务端的方法
    目录环境准备编写.thrift文件生成python对应的thrift代码编写服务端编写客户端用于测试测试服务端近期在项目中存在跨编程语言协作的需求,使用到了Thrift。本文将记录用...
    99+
    2022-11-12
  • python怎么实现Thrift服务端
    这篇文章将为大家详细讲解有关python怎么实现Thrift服务端,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所...
    99+
    2023-06-14
  • python实现FTP服务器服务的方法
    FTP服务的主动模式和被动模式 在开始之前,先聊一下FTP的主动模式和被动模式,两者的区别 , 用两张图来表示可能会更加清晰一些: 主动模式: 主动模式工作过程: 1. 客户端以随机非特权端口N,就是大于...
    99+
    2022-06-04
    服务器 方法 python
  • flask实现python方法转换服务的方法
    目录一.flask安装二.flask简介:三 flash实现python脚本web服务化-get方法四 flash实现python脚本web服务化-post方法一.flask安装 ...
    99+
    2022-11-11
  • 使用python搭建服务器并实现Android端与之通信的方法
    前言 好久没有更技术文了,再不写怕是博客要废掉了,今天更一篇关于搭建服务端并与Android端通信的文章,为了节省代码量,服务端使用Python Flask,Android端使...
    99+
    2022-06-06
    用python 服务器 方法 通信 Python Android
  • python连接FTP服务器的实现方法
    python中ftplib模块支持ftp操作,主要使用FTP类。本文使用ftp操作进行连接FTP服务器、获取当前目录文件清单、上传文件等操作。 参考文献1的示例中,在创建FTP实例时...
    99+
    2022-11-11
  • python rpyc客户端调用服务端方法的注意说明
    目录python rpyc客户端调用服务端方法问题1问题2python rpyc的使用心得python rpyc客户端调用服务端方法 使用rpyc遇到两个问题: 问题1 client...
    99+
    2022-11-11
  • JavaScript实现请求服务端接口方法详解
    JavaScript 中请求服务端接口的代码实现可能会因为使用的方法而有所不同。 1、使用 XMLHttpRequest: var xhr = new XMLHttpRequest(...
    99+
    2023-01-31
    JS请求服务端接口 JavaScript请求服务端接口
  • 客户端Socket与服务端ServerSocket串联实现网络通信的方法
    本文小编为大家详细介绍“客户端Socket与服务端ServerSocket串联实现网络通信的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“客户端Socket与服务端ServerSocket串联实现网络通信的方法”文章能帮助大家解决疑惑...
    99+
    2023-06-29
  • 微型前端的实现方法
    本篇内容主要讲解“微型前端的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微型前端的实现方法”吧!微前端之间的零耦合为了实现这种架构的好处,应尽可能避免...
    99+
    2022-10-19
  • python实现事务机制的方法
    这篇文章将为大家详细讲解有关python实现事务机制的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不...
    99+
    2023-06-14
  • Python基于socket实现TCP客户端和服务端
    目录一、基于socket实现的TCP客户端二、基于socket实现的TCP服务端三、socket实现的多任务版TCP服务端1、面向对象版本一、基于socket实现的TCP客户端 im...
    99+
    2022-11-10
  • 阿里云轻量服务器多端口连接的实现方法
    随着互联网技术的不断发展,多端口连接已经成为服务器连接的主流方式。在阿里云轻量服务器上,如何实现多端口连接呢?本文将为你详细解答。 一、阿里云轻量服务器多端口连接的基础知识在阿里云轻量服务器上,多端口连接是指在同一台服务器上,通过网络设备,...
    99+
    2023-11-16
    阿里 服务器 多端
  • 怎么使用python实现android的服务器端
    这篇“怎么使用python实现android的服务器端”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用python实现...
    99+
    2023-07-02
  • windowsserver2008开启端口的实现方法
    windows server 2008大多数端口都是默认关闭的,这里我们使用tomcat的8080端口为例,演示如何开启一个端口 打开服务器管理器->配置->高级安全wi...
    99+
    2022-11-13
  • 前端css实现箭头的方法
    这篇文章主要介绍前端css实现箭头的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前端css实现箭头的方法:设置箭头盒子,在div里设置属性即可,代码为【<div class="arrow_box...
    99+
    2023-06-14
  • Python实现网络端口转发和重定向的方法
    本文实例讲述了Python实现网络端口转发和重定向的方法。分享给大家供大家参考,具体如下: 【任务】 需要将某个网络端口转发到另一个主机(forwarding),但可能会是不同的端口(redirecting...
    99+
    2022-06-04
    端口 重定向 方法
  • Python作为小程序后端的实现方法有哪些
    本篇内容主要讲解“Python作为小程序后端的实现方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python作为小程序后端的实现方法有哪些”吧!方法一、微信的云托管优点:不需要购买服务...
    99+
    2023-06-30
  • Python中怎么实现服务端与客户端连接
    本篇内容主要讲解“Python中怎么实现服务端与客户端连接”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中怎么实现服务端与客户端连接”吧!服务端我们使用 socket 模块的&nbs...
    99+
    2023-06-08
  • python客户端与服务器端通信怎么实现
    Python客户端与服务器端通信可以通过套接字(socket)实现。1. 服务器端首先需要创建一个套接字,并绑定到指定的IP地址和端...
    99+
    2023-09-08
    python 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作